二进制与十进制之间的转换
2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
原码、反码、补码
对一个正数来说:二进制原码、反码、补码是同一个
对一个负数来说:在计算机中,负数都用补码表示
eg:byte i=-1
原码 | 1000 0001 |
反码 | 1111 1110(符号位不变,其他位取反) |
补码 | 1111 1111(反码+1) |
例子
Java中
byte b=(byte)150; 结果是?
整型150=0b00000000 00000000 00000000 10010110
强制转换去掉前三个字节成 1001 0110(此时为是补码,要反求原码)
反码:1001 0101(补码-1)
原码:1110 1010(符号位不变,其他位取反=-106)
64+32+8+2=106