大端小端问题
本帖最后由 松鼠呀 于 2020-3-14 13:18 编辑https://img02.sogoucdn.com/app/a/100520146/A09F35E43EBC7B0C96D64B5C34B2698B
https://img02.sogoucdn.com/app/a/100520146/B3128C755AF64A71B9D37B09DCE93F8B
<img src="https://img02.sogoucdn.com/app/a/100520146/B3128C755AF64A71B9D37B09DCE93F8B"/>麻烦问一下各位大佬这为什么不是03和93啊 大小端是针对多字节变量存储而言的。多字节变量大端存储则是高字节在前低字节在后,小端存储则相反。这只是各个字节的顺序。并不是字节内也要反转的,字节内反转那还是原来的数据么?
这是规则,没有为什么。 0x0393不是连数据大小都变了吗
12345的16进制是0x3039呀 short 占两个字节 a:
a,a
a低地址a高地址
0x3039
30高字节,39低字节
小端:
低低高高
a=39,a=30
大端:
低高高低
a=30,a=39
本帖最后由 jackz007 于 2020-3-14 15:21 编辑
首先,大端(Big endian)、小端(Little endian)针对的都是数值型量(通过多个字节组合进行表达的数值,包括整数、浮点数等),其次,大端(Big endian)、小端(Little endian)指的是用来构成一个数值的多个字节在内存中排列的先后顺序,例如,整型数 12345 的十六进制形式是 0x3093,这个数需要用两个字节(30 和 93)来表达,在内存中,这两个字节如果按 30、93 的顺序存储,那么,就是大端(Big endian)模式,反之,如果是按 93、30 的顺序存储,那么,就是小端(Little endian)模式,具体采用大端(Big endian)还是小端(Little endian)取决于 CPU 芯片的硬件架构,我们所使用的 PC 机通常采用的都是 Intel 架构(或兼容)的 CPU 芯片,所以,我们见到的都是清一色的小端(Little endian)模式,很难见到大端(Big endian)模式。 jackz007 发表于 2020-3-14 14:25
首先,大端(Big endian)、小端(Little endian)针对的都是数值型量(通过多个字节组合进行表达的 ...
大佬,我想问的意思是为什么30算一个字节啊? 松鼠呀 发表于 2020-3-14 19:07
大佬,我想问的意思是为什么30算一个字节啊?
12345的16进制是0x3039呀
一个字节=8bit
假设是0x30
转成二进制那就是 00110000 不刚好8位 4goodworld 发表于 2020-3-14 21:26
12345的16进制是0x3039呀
一个字节=8bit
假设是0x30
太谢谢了
页:
[1]