【发布时间】:2016-08-30 10:41:20
【问题描述】:
在 little endian 中工作,这很奇怪(包括 eof,如果有的话)像这样的 C 向量的位表示?
unsigned char vet[] = {0x0f, 0x05};
【问题讨论】:
标签: c vector bit endianness
在 little endian 中工作,这很奇怪(包括 eof,如果有的话)像这样的 C 向量的位表示?
unsigned char vet[] = {0x0f, 0x05};
【问题讨论】:
标签: c vector bit endianness
unsigned chars 向量的位表示不依赖于字节序,因为char 类型是单字节的,而字节序告诉您多个字节在内存中的排列方式。
因此,0x0f 将在内存中比0x05 更早的地址找到,从而产生
0000111100000101
如果有 [one] 则包括 eof
与 C 字符串和用 C 字符串初始化的数组不同,用花括号初始化器初始化的数组没有结束标记。
【讨论】:
BC,FF,01,0x01 的表示中有七个连续的零。
01 是二进制 00000001,所以中间是零,不能去掉。
那么,如果向量是:
unsigned char vet[] = { 0xBC,0xFF,0x01 }
位表示应该是:
101111001111111100000001
而且它的长度是 24 位,因为没有结束标记,对吗?
【讨论】: