1.正负数的二进制表示方法:
正数:默认为int类型(4字节32位)
5:00000000 00000000 00000000 00000101
负数:以正值的补码形式表示
原码:一个整数,按照绝对值大小转换成的二进制数
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码
补码:反码加1称为补码
-5:原码:00000000 00000000 00000000 00000101
反码:11111111 11111111 11111111 11111010
补码:11111111 11111111 11111111 11111011
所以-5的二进制表示为:11111111 11111111 11111111 11111011
2.负数的二进制转化为十进制:
-5 的二进制表示为:11111111 11111111 11111111 11111011
第一步:减一 得到:11111111 11111111 11111111 11111010
第二步:取反 得到:00000000 00000000 00000000 00000101
上步结果计算十进制值:1*2的2次方+1*2的0次方 = 5 加上符号 即得到-5
3.java的非运算(~)
-5 的二进制表示为:11111111 11111111 11111111 11111011
取反:00000000 00000000 00000000 00000100 这是个正数:计算为十进制得到4
6 的二进制表示为:00000000 00000000 00000000 00000110
取反:11111111 11111111 11111111 11111001
这是个负数:转化为十进制同上面第2段
第一步:减一:11111111 11111111 11111111 11111000
第二步:取反:00000000 00000000 00000000 00000111 计算得到十进制为:7 加上负数符号 即为:-7
快速计算口诀:原数+1 取反(不知对不对。。。。。)
-5+1=-4 取反 :4
6+1=7 取反 :-7