java基础复习 - 3 - 进制
进制
进制介绍
对于整数,有四种方式
- 二进制:0,1 满2进1,以0b或0B开头 0b1010
 - 十进制:0-9,满10进1 1010
 - 八进制:0-7,满8进1.以数字0开头表示 01010
 - 十六进制:0-9及A-F,满16进1,以0x或0X开头表示,此处的A-F不区分大小写 0x10101
 
进制的转换
第一组
- 二进制转十进制
从最低位(右边开始),将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
0b1010转十进制
0b1010=1*2^(1-1) + 1*2^(2-1) + 0 + 1 * 2^(4-1) = 10 - 八进制转十进制
从最低位(右边开始),将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和 - 十六进制转十进制
从最低位(右边开始),将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和 
第二组
- 十进制转二进制
将该数不断除以2,直到商为0为止,然后将每步的余数倒过来,就得到对应的二进制
34转2进制 1 2 4 8 16 32
34 = 0B100010- 34 / 2 = 17 余 0
 - 17 / 2 = 8 余 1
 - 8 / 2 = 4 余 0
 - 4 / 2 = 2 余 0
 - 2 / 2 = 1 余 0
 
 - 十进制转八进制
将该数不断除以8,直到商为0为止,然后将每步的余数倒过来,就得到对应的八进制
131 = 0203 - 十进制转十六进制
将该数不断除以16,直到商为0为止,然后将每步的余数倒过来,就得到对应的十六进制
237 = 0XED 
第三组
- 二进制转八进制
从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
0b11010101转成八进制
0b11(3)010(2)101(5) = 0325 - 二进制转十六进制
从低位开始,将二进制数每四位一组,转成对应的八进制数即可。
0b11010101 = 0xD5 
第四组
- 八进制转二进制
将八进制每1位,转出对应的一个3位的二进制数即可
0237 = 02(010)3(011)7(111) = 0b010011111 - 十六进制转二进制
将八进制每1位,转出对应的一个4位的二进制数即可 
原码、反码、补码
概括
- 二进制的最高位是符号位:0表示正数,1表示负数
 - 正数的原码,反码、补码都一样
 - 负数的反码 = 它的原码符号位不变,其它位取反
 - 负数的补码 = 它的反码+1,负数的反码 = 负数的补码 - 1
 - 0的反码,补码都是0
 - java没有无符号数,换言之,java中的数都是有符号的
 - 在计算机运算的时候,都是以补码的方式来运算的.
 - 当我们看运算结果的时候,要看他的原码
 
                    
                
                
            
        
浙公网安备 33010602011771号