我正在开发一个程序,我将一些数据存储在整数中并按位处理.例如,我可能会收到数字48,我会逐位处理.一般来说,整数的字节顺序取决于整数的机器表示,但Python是否做了什么来保证int总是小端?或者我是否需要像在C中那样检查字节序,然后为这两种情况编写单独的代码?
我问,因为我的代码在Sun机器上运行,虽然它现在运行的是使用英特尔处理器,但我可能不得不在未来切换到配备Sun处理器的机器,我知道它是大端的.
我在C++中有以下代码片段:
for (int x = -4; x < 5; ++x)
printf("hex x %d 0x%08X\n", x, x);
Run Code Online (Sandbox Code Playgroud)
它的输出是
hex x -4 0xFFFFFFFC
hex x -3 0xFFFFFFFD
hex x -2 0xFFFFFFFE
hex x -1 0xFFFFFFFF
hex x 0 0x00000000
hex x 1 0x00000001
hex x 2 0x00000002
hex x 3 0x00000003
hex x 4 0x00000004
Run Code Online (Sandbox Code Playgroud)
如果我在python中尝试相同的事情:
for x in range(-4,5):
print "hex x", x, hex(x)
Run Code Online (Sandbox Code Playgroud)
我得到以下内容
hex x -4 -0x4
hex x -3 -0x3
hex x -2 -0x2
hex x -1 -0x1 …Run Code Online (Sandbox Code Playgroud)