Tag: bits

打印无效指针的位

如果我创建一个void指针,并将一段内存malloc到该void指针,那么如何打印出我刚刚分配的各个位? 例如: void * p; p = malloc(24); printf(“0x%x\n”, (int *)p); 我想上面打印我刚刚分配的24位。

可移植代码 – 每个字符的位数

我知道C / C ++标准只保证每个字符最少 8位,理论上9/16/42 /其他任何东西都是可能的,因此所有关于编写可移植代码的网站都会警告不要假设8bpc。 我的问题是“非便携式”这是真的吗? 让我解释。 在我看来,有三类系统: 计算机 – 我的意思是台式机,笔记本电脑,服务器等运行Mac / Linux / Windows / Unix / * nix / posix /等等(我知道列表并不严格,但你明白了)。 听到任何这样的系统,其中char不是8位,我会感到非常惊讶。 (如果我错了,请纠正我) 带操作系统的设备 – 包括智能手机和此类嵌入式系统。 虽然我发现这样一个char ,其中char更多是8位,我不会感到非常惊讶,但我还没有听说过一个迄今为止的情况(如果我不知道,请再次通知我) 裸机设备 – 录像机,微波炉,旧手机等。在这个领域我没有丝毫的经验,所以任何事情都可能发生在这里。 但是,我真的需要我的代码在我的Windows桌面和微波炉之间跨平台吗? 我可能有两个共同的代码吗? 底线:是否有共同(超过%0.001)平台(上面的类别1和2),其中char 不是 8位? 我的上述猜测是真的吗?