1.2 进制转换
-
十进制转其他进制。如123转为2进制,用123不断除2,得到的余数倒过来就是对应的二进制。转成其他进制同理。
-
二进制转八进制,从后往前每3个为一位。如:0b110001100=0b110 001 100=0614.
-
二进制转十六进制,从后往前每4个为一位。如:0b110001100=0b1 1000 1100=0x18C.
-
位运算:
int a = 1>>2 //1向右位移两位
int a = 1>>>2 //1向右无符号位移2位
~2// 按位取反
-3^3=? //按位异或
-
原码、反码、补码
- 最高位为符号位:0为正数,1为负数
- 正数的三个码一样
- 负数的反码=符号位不变,其他按位取反,补码=反码+1
- java的数都是有符号的
- 计算机运行时是以补码运算的
- 显示运算结果时,显示的是原码
- 例题:2&3 先得到2和3的补码运算,得到的结果转为原码,2的原码(补码为) 2: 00000000 00000000 00000000 00000010(int型4个字节,正数原码与补码一致)
- 例题:~2 先得到2的补码,按位取反,再得到原码(注意是先得到反码再得到原