位运算符
位移操作不能在所有处理器体系结构中移植,不同的处理器可以具有不同的位宽。换句话说,如果你写的
int a = ~0;
int b = a << 1;
在 64 位计算机上与 32 位计算机上,或从基于 x86 的处理器到基于 PIC 的处理器,此值将不同。
对于逐位操作本身不需要考虑字节序,也就是说,右移(>>
)将位移向最低有效位,并且 XOR 将对位执行异或。只需要将数据本身考虑到 Endian-ness,也就是说,如果 endian-ness 是你的应用程序的一个问题,那么无论有多么简单的操作,它都是一个问题。