1.负数的二进制使用补码
负数的二进制是采用补码计算的,比如:
1的二进制为:0000 0001
它(正数)的反码和补码、原码都是一样的。
负数的反码要根据正数的二进制,符号位为1其它7位按位取反,-1的反码为1111 1110
负数的补码根据其反码+1,-1的补码为1111 1111
如果1+(-1)的话,则为0000 0000
2.二进制转八进制、十进制、十六进制
首先二进制转十进制:
若 0001 0010 转十进制则为:1*2^4+0*2^3+0*2^2+1*2^1+0*2^0=18
十进制转二进制可以除2取余,余数倒过来组合就是相应的二进制,或者差分成2的n次幂相加,有n的值为1,无n的为0,组合就为相应的二进制,比如:12=1*2^3+1*2^2+0*2^1+0*2^0=0000 1100
二进制转八进制,每二进制的3位可转换成八进制的一位
若00 010 010转八进制则为:22 【转换方式:((1*2^1+0*2^0)(1*2^1+0*2^0))】
二进制转16进制,每二进制4位转换成十六进制一位:
若0001 0010转十六进制则为:12
八进制转二进制,十六进制转二进制则倒过来,一个八进制位转成二进制3位,一个十六进制位转成二进制4位
3.位运算
左移<<
右移>>
2的二进制:0000 0010 左移后为 0000 1000(即右边补两个0)
左移规则,n左移x位后的值为 n*2^x
右移规则,n右移x位后的值为 n/2^x (右移取整数)
异或 ^
规则:相同为0,不同为1
比如:5: 0000 0101
6: 0000 0110
5^6= 0000 0011(二进制) =3(十进制)
按位与&
比如:5: 0000 0101
6: 0000 0110
规则:同为1才为1,否则为0
5&6 = 0000 0100(二进制) = 4(十进制)
按位或|
比如:5: 0000 0101
6: 0000 0110
规则:有一个为1结果为1,其它为0
5|6 = 0000 0111(二进制) = 7(十进制)
按位取反~
比如:5: 0000 0101
规则:先取反,再取反码,再取补码
~5 取反:1111 1010
反码:1000 0101
补码: 1000 0110
结果为:-6