一、进制
1.进制介绍
对于整数,有四种表示方式:
(1)二进制:以0b或0B开头
(2)十进制:
(3)八进制:以数字0开头表示。
(4)十六进制:以0x或0X开头表示
2. 二进制转八进制
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可
案例:请将0b11010101转成八进制0b110(3)010(2)101(5) = 0325
3. 二进制转十六进制
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可
案例:请将:0b11010101转成十六进制0b1101(13)0101(5) = 0XD5
4. 八进制转二进制
规则:将八进制数每1位,转成对应的一个3位的二进制数即可
案例:请将0237转成二进制02(010)3(011)7(111)= 0B10011111
5. 十六进制转换成二进制
规则:将十六进制数每1位,转成对应的4位的一个二进制数即可。
案例:请将0x23B转成二进制0x2(0010)3(0011)B(1011) = 0B1000111011
P97 晕了
二、原码、反码、补码(重点难点)
对于有符号的而言:
(1)二进制的最高位是符号位:0表示正数,1表示负数
(2)正数的原码,反码,补码都一样(三码合一)
(3)负数的反码 = 它的原码符号位不变,其它位取反(0->1,1->0)
(4)负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1
(5)0的反码,补码都是0
(6)java 没有无符号数,换言之,java中的数都是有符号的
(7)在计算机运算的时候,都是以补码的方式来运算的
(8)当我们看运算结果的时候,要看他的原码
三、位运算符
java中有7个位运算(& 、| 、^ 、~、 >>、<<和>>>)
分别是 按位与& 、按位或| 、按位异或^ ,按位取反~ ,它们的运算规则是:
(1)按位与& :两位全为1,结果为1,否则为0
(2)按位或| :两位有一个为1,结果为1,否则为0
(3)按位异或^ :两位一个为0,一个为1,结果为1,否则为0
(4)按位取反~:0->1,1->0
还有3个位运算符
(1)算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位(本质:除以2)
(2)算术左移<<:符号位不变,低位补0(本质:乘以2)
(3)>>>逻辑右移也叫无符号右移,运算规则是:低位溢出,高位补0
(4)特别说明:没有<<<符号