二进制、八进制、十进制、十六进制的转换
目录
- 一、十进制与二进制的转换
- 1.逢二进一法
- 2.除二取余法
- 3.java中赋值二进制使用0B或0b开头
- 二、二进制与十进制的转换
- 三、二进制与八进制的转换
- 1.将二进制从左到右每3位进行分割计算八进制
- 2.通过八进制倒推二进制再转换十进制
- 3.八进制的最大值与最小值
- 4.java中赋值八进制使用0开头
- 四、二进制与十六进制的转换
- 1.十六进制的最大值与最小值
- 2.将二进制从左到右每4位进行分割计算十六进制
- 3.通过十六进制倒推二进制再转换十进制
- 4.java中赋值十六进制使用0x或0X开头
一、十进制与二进制的转换
1.逢二进一法
2.除二取余法
7的二进制:
7/2=3余1
3/2=1余1
1/2=0余1
从下往上组合:7的二进制为111
3.java中赋值二进制使用0B或0b开头
public class test {public static void main(String[] args) {//赋值二进制数据使用0b或0B开头int a = 0b111;System.out.println("0b111的十进制是:" + a);}//输出结果:0b111的十进制是:7
二、二进制与十进制的转换
说明:①二进制只有四位时,按从右到左的顺序:千位乘8 + 百位乘4 + 十位乘2 + 个位乘1的值等于十进制
②计算机最小存储单位为1字节(Byte),1字节=8比特位,当二进制不足8位时,从右到左将空位填充0,例如7:00000111
三、二进制与八进制的转换
1.将二进制从左到右每3位进行分割计算八进制
例如97的二进制:01100001,分割为01,100,001
将每一段*8421可得出97的八进制为:141
计算逻辑:01*8421=1,100*8421=4,001*8421=1
2.通过八进制倒推二进制再转换十进制
八进制:151
倒推二进制:1=1,5=101,1=001
倒推二进制结果:01101001
转换十进制:2^7*0 + 2^6*1 + 2^5*1 + 2^4*0 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*1
十进制结果: 0 + 64 + 32 + 0 + 8 + 0 + 0 + 1 = 105
3.八进制的最大值与最小值
最大值:二进制111=八进制4+2+1=7
最小值:二进制000=八进制0
八进制范围:0-7,共8位
4.java中赋值八进制使用0开头
public class test {public static void main(String[] args) {//赋值八进制使用0开头int a = 0151;System.out.println("0151的十进制是:" + a);}//输出结果:0151的十进制是:105
}
四、二进制与十六进制的转换
1.十六进制的最大值与最小值
最大值:二进制1111=十六进制8+4+2+1=15
最小值:二进制0000=十六进制0
十六进制范围:0-15,共16位,分别是0-9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
2.将二进制从左到右每4位进行分割计算十六进制
例如182的二进制:10110110,分割为1011,0110
将每一段*8421可得出182的十六进制为:B6
计算逻辑:1011*8421=11=B,0110*8421=6
3.通过十六进制倒推二进制再转换十进制
十六进制:C1
倒推二进制:C=12,12=8+4,C=1100,1=0001
倒推二进制结果:11000001
转换十进制:2^7*1 + 2^6*1 + 2^5*0 + 2^4*0 + 2^3*0 + 2^2*0 + 2^1*0 + 2^0*1
十进制结果: 128 + 64 + 0 + 0 + 0 + 0 + 0 + 1 = 193
4.java中赋值十六进制使用0x或0X开头
public class test {public static void main(String[] args) {//赋值十六进制使用0x或0X开头int a = 0xC1;System.out.println("0xC1的十进制是:" + a);}//输出结果:0xC1的十进制是:193
}