1. 按位取反(~
)
输出: 12 补码一一: 00000000000000000000000000001100
输出: 12 按位取反: 11111111111111111111111111110011
------------------------------------------------
输出: -12 补码一一: 11111111111111111111111111110100
输出: -12 按位取反: 00000000000000000000000000001011
System.out.println("输出: " + num +" 补码一一: " + proFillZero(Integer.toBinaryString(num)));
System.out.println("输出: " + num +" 按位取反: " + proFillZero(Integer.toBinaryString(~num)));
2. 取反
可能不同场景
有不同的称呼
- 场景1:
按位取反
有时候简称 取反 - 场景2:
逻辑取反
有时候简称 取反:参考
3. 取反码
正数时,以12为例
输出: 12 原码一一: 00000000000000000000000000001100
输出: 12 反码一一: 00000000000000000000000000001100 √ 这就是反码
输出: 12 补码一一: 00000000000000000000000000001100
负数时,以-12为例
方法1:通过 -12
的绝对值
12
开始算起
方法1:通过 -12 的绝对值开始算
输出: 12 原码一一: 00000000000000000000000000001100
输出: 12 反码一一: 00000000000000000000000000001100
输出: 12 补码一一: 00000000000000000000000000001100
输出: 12 按位取反: 11111111111111111111111111110011 √ 这就是反码
输出:-12 补码一一: 11111111111111111111111111110100
System.out.println("输出: " + num +" 原码一一: " + proFillZero(Integer.toBinaryString(num)));
System.out.println("输出: " + num +" 反码一一: " + proFillZero(Integer.toBinaryString(num)));
System.out.println("输出: " + num +" 补码一一: " + proFillZero(Integer.toBinaryString(num)));
System.out.println("输出: " + num +" 按位取反: " + proFillZero(Integer.toBinaryString(~num)));
System.out.println("输出:" +-num +" 补码一一: " + proFillZero(Integer.toBinaryString(-num)));
方法2:通过 -12
的原码
开始算起
方法2:通过 -12 的原码开始算起
输出: -12 原码一一: 10000000000000000000000000001100
输出: -12 反码一一: 11111111111111111111111111110011 √ 这就是反码
输出: -12 补码一一: 11111111111111111111111111110100