假设我用数字 'numb'=1025 [00000000 00000000 00000100 00000001]
表示:
关于 Little-Endian 机器:
00000001 00000100 00000000 00000000
关于 Big-Endian 机器:
00000000 00000000 00000100 00000001
现在,如果我在10位上应用 Left Shift (比如: 数字麻木 < = 10) ,我应该:
关于 Little-Endian 机器:
正如我在 GDB 中注意到的那样,Little Endian 用3个步骤完成了 Left Shift: [我已经展示了‘3’个步骤来更好地理解处理过程]
对待大-恩迪安公约中的否定:
00000000 00000000 00000100 00000001
Apply Left-Shift:
00000000 00010000 00000100 00000000
Represent the Result again in Little-Endian:
00000000 00000100 00010000 00000000
[B]. On Big-Endian Machine:
00000000 00010000 00000100 00000000
我的问题是:
如果我直接在小 Endian 上应用一个左移 公约应该给予:
返回文章页面
00000001 00000100 00000000 00000000
返回文章页面
00010000 00000000 00000000 00000000
但实际上,它给出了:
00000000 00000100 00010000 00000000
为了得到第二个结果,我已经展示了上面的三个假设步骤。
请解释一下为什么上述两个结果不同: numb << 10
的实际结果与预期结果不同。