目录
1 负数的二进制
我们知道计算机只认识0和1,数字在计算机中就是以二进制表示的。这里提到三个概念:原码、反码和补码。数字的表示形式就是补码。
1.1 正数
正数的原码、反码和补码都是一样的,比如int值5的的原码、反码和补码都是:
00000000 00000000 00000000 00000101
所以5在计算机中的表示也是00000000 00000000 00000000 00000101。
1.2 负数
先说3点概念:
- 负数的原码:按照绝对值大小转换成的二进制数,然后最高位补1。
- 负数的反码:原码除最高位,其余位取反。
- 负数的补码:反码+1。
-5的原码为: 10000000 00000000 00000000 00000101。
-5的反码为:11111111 11111111 11111111 11111010。
-5的补码为:11111111 11111111 11111111 11111011。
补码11111111 11111111 11111111 11111011就是-5在计算机中的表示。
2 二进制转十六进制
四位二进制对应一位16进制,按顺序求就行。
3 Java中的运算符
一般用于二进制的运算。
3.1 与运算符&
双目云算符。两个位数中位都为1,结果才为1,否则结果为0。
3.2 或运算符|
双目云算符。两个位数中只要有一个为1,那么结果为1,否则结果为0.
3.3 非运算符~
单目云算符。所有位取反(0取1,1取0)。
3.4 异或运算符^
双目云算符。两个位数相同结果为0,不同结果为1。