下面对java中的大端、小端和>>运算符进行整理记录。
字节序,指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序,有大端和小端两种方式:
- 大端:指高位字节存放在内存的低地址端,低位字节存放在内存的高地址端;
- 小端:指低位字节放在内存的低地址端,高位字节放在内存的高地址端;
以一个十六进制整数0x01020304为例,分别展示大端和小端在内存中的存储方式:
- 大端:
大端在内存中数据即为[1,2,3,4] - 小端:
小端在内存中数据即为[4,3,2,1]
存储方式和CPU架构有关,IA架构(Intel、AMD)的CPU中是Little-Endian,而PowerPC 、SPARC和Motorola是Big-Endian。
'>>'表示带符号右移,如int i = 15;i>>2表示向右移动2位,低位移出(舍弃),高位空位补零,如下:
15对应的二进制位为0000 1111,右移2位为0000 0011,结果为3。
- &:按位与(AND);
- |:按位或(OR);
- ‘>>’:右移;
- ’<<‘:左移;
其中,按位与是只有均是1时才得1。