1.二进制转十进制:
例如:1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25
2.十进制转二进制:
逢2进1,
1->1,
2->10,
7->111 ==> 7/2=3(余1),3/2=1(余1),1/2=0(余1),从右到左(从下到上)==》111
8->1000 ==> 8/2=4(余0),4/2=2(余0),2/2=1(余0),1/2=0(余01),从右到左(从下到上)==》1000
3.反码:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
+1 = 00000001 原 = 00000001反
-1 = 10000001 原 = 11111110 反
3. 补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.
附:Java ~ (取反) 即 补码 正数的取反为 -(X+1) 负数的取反为 X-1
Java ^ 异或 两个数二进制对齐,相同为0,相异为1 如:2^3 = 00000010 ^ 00000011 = 00000001
Java << 左移 2 << 2 = 4 ==> 10 --> 100 = 4
Java >> 右移 2 >> 2 = 1 ==> 10 --> 1 = 1
Java & 位与,都为1则为1,否则为0,如:1&0=0,0&0=0,1&1=1