进制
-
二进制
0b或者0B
-
十进制
-
八进制
以0开头表示
-
十六进制
0x或0X,A-F不区分大小写
进制的转换
-
二转十
从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,求和
-
八转十
从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,求和
-
十六转十
从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,求和
-
十转二
将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
-
十转八
将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
-
十转十六
将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制
-
二转八
从低位开始,将二进制没三位一组,转成对应的八进制数即可
-
二转十六
从低位开始,将二进制没三位一组,转成对应的八进制数即可
-
八转二
将八进制数每一位,转成对应的一个三位的二进制数即可
-
十六转二
将十六进制数每一位,转成对应的一个四位的二进制数即可
位运算
- ~按位取反
- 按位与
- 按位异或
二进制逢二进一,0.1是基本算符
计算机全部采用二进制
原码、反码、补码
对于有符号的而言:
- 二进制的最高位是符号位,0正1负
- 整数的原码、反码、补码都一样(三码合一)
- 负数的反码=它的原码符号位不变,其他位取反
- 负数的补码=反码+1
- 0的反码、补码都是0
- java没有无符号数,换言之java中的数都是有符号的
- 计算机运算的时候都是以补码的方式来运算的
- 当我们看运算结果时,要看它的原码
位运算符
& 、|、 ~、 ^ 、>>、 << 、>>>
- 按位与&:两位全为1,结果为1,否则是0
- 按位或|:两位有一个为1,结果为1,否则为0
- 按位异或^:两位一个为0,一个为1,结果为1,否则为0
- 按位取反~:1变0,0变1
- 算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位(本质是除以2)
- 算术左移<<:符号位不变,低位补0(本质是乘2)
- 逻辑右移或者无符号右移>>>:低位溢出,高位补0
- 3;2;0;-10.5-(int)(-10.5)/3*3= -1.5
- i=66 ; ++i => 67 ; 67+67=134 ;
- 001100