二进制与十进制的相互转化
-
二进制转化成十进制
- 方法:小数点往左第1位是2的0次方,第2位是2的1次方,第3位是2的2次方,第N位的是2的N-1次方。小数点往右第1位是2的-1次方,第2位是2的-2次方,第N位的是2的-N次方。把最后的结果相加的值就是十进制的值了。
- 例子:将二进制的101011.101转换为十进制的步骤如下:
- 一、计算小数点左边:1+2+0+8+0+32=43
- 第0位 1 x 2^0 = 1;
- 第1位 1 x 2^1 = 2;
- 第2位 0 x 2^2 = 0;
- 第3位 1 x 2^3 = 8;
- 第4位 0 x 2^4 = 0;
- 第5位 1 x 2^5 = 32;
- 二、计算小数点右边:0.5+0+0.125=0.625
- 第1位 1 x 2^-1 = 0.5;
- 第2位 0 x 2^-2 = 0;
- 第3位 1 x 2^-3 = 0.125;
- 三、把上述两步的结果相加就得到我们要的十进制数:43+0.625=43.625
- 一、计算小数点左边:1+2+0+8+0+32=43
-
十进制转化成二进制
- 方法:整数部分采用除2取余,逆序排列,即把整数部分去除以2,得到的商继续除2,直至商为0,把每一步的余数逆序排列构成二进制数的整数部分。小数部分采用乘2取整,顺序排列,即把小数部分去乘2,得到的结果的小数部分继续乘以2,直至结果的小数部分为0.0,把每一步结果的整数部分顺序排列构成二进制数的小数部分。
- 例子:将十进制的43.625转换为二进制的步骤如下:
- 一、整数部分转化为二进制:101011
- 43÷2,商21,余1
- 21÷2,商10,余1
- 10÷2,商5,余0
- 5÷2,商2,余1
- 2÷2,商1,余0
- 1÷2,商0,余1
- 二、小数数部分转化为二进制:101【注意:次数可以计算步骤很长,我们适当取几位小数即可】
- 0.625*2=1.25,小数部分0.25,整数部分为1
- 0.25*2=0.5,小数部分0.5,整数部分为0
- 0.5*2=1.0,小数部分0.0,整数部分为1
- 三、把上述两步的结果综合起来就得到了我们想要的二进制数:101011.101
- 一、整数部分转化为二进制:101011
- 延伸:对于整数部分,我们也可以适当记住2的N次方的结果,以便快速算出整数部分
- 2^0 = 1
- 2^1 = 2
- 2^2 = 4
- 2^3 = 8
- 2^4 = 16
- 2^5 = 32
- 2^6 = 64
- 2^7 = 128
- 2^8 = 256
- 2^9 = 512
- 2^10 = 1024
- ...
- 我们以十进制数1000为例子:29+28+27+26+25+23 = 1000,我们可以这样看:
- 2^9 = 512,取用填1
- 2^8 = 256,取用填1
- 2^7 = 128,取用填1
- 2^6 = 64,取用填1
- 2^5 = 32,取用填1
- 2^4 = 16,取用填0
- 2^3 = 8,取用填1
- 2^2 = 4,取用填0
- 2^1 = 2,取用填0
- 2^0 = 1,取用填0
我们把结果顺序排列就得到了我们想要的二进制数:1111101000
- 我们以十进制数1000为例子:29+28+27+26+25+23 = 1000,我们可以这样看:
二进制与八进制的相互转化
首先我们记住这个表,可以更快捷计算在二进制与八进制切换,左边二进制数,右边八进制数:
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
-
二进制转化成八进制
- 方法:小数点往左依次取3位,不足在左边加0,参考上表转化成一个八进制数,得到的结果逆序排列。小数点往右依次取3位,不足在右边加0,参考上表转化成一个八进制数。
- 例子:将二进制的101011.101转换为八进制的步骤如下:
- 一、计算小数点左边:53
- 011 = 3
- 101 = 5
- 二、计算小数点右边:0.5
- 0.101 = 0.5
- 三、把上述两步的结果相加就得到我们要的八进制数:53+0.5=53.5
- 一、计算小数点左边:53
-
八进制转化成二进制
- 方法:小数点往左依次取1位,参考上表转化成一个二进制数,得到的结果逆序排列。小数点往右依次取1位,参考上表转化成一个二进制数。
- 例子:将八进制的53.5转换为二进制的步骤如下:
- 一、计算小数点左边:101011
- 3 = 011
- 5 = 101
- 二、计算小数点右边:101
- 0.5 = 0.101
- 三、把上述两步的结果综合得到我们要的二进制数:101011.101
- 一、计算小数点左边:101011
二进制与十六进制的相互转化
首先我们记住这个表,可以更快捷计算在二进制与八进制切换,左边二进制数,右边八进制数:
0000 = 0
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = a
1011 = b
1100 = c
1101 = d
1110 = e
1111 = f
-
二进制转化成十六进制
- 方法:小数点往左依次取4位,不足在左边加0,参考上表转化成一个八进制数,得到的结果逆序排列。小数点往右依次取4位,不足在右边加0,参考上表转化成一个八进制数。
- 例子:将二进制的101011.101转换为八进制的步骤如下:
- 一、计算小数点左边:2b
- 1011 = b
- 0010 = 2
- 二、计算小数点右边:0.5
- 0.1010 = 0.a
- 三、把上述两步的结果相加就得到我们要的八进制数:2b+0.a=2b.a
- 一、计算小数点左边:2b
-
十六进制转化成二进制
- 方法:小数点往左依次取1位,参考上表转化成一个二进制数,得到的结果逆序排列。小数点往右依次取1位,参考上表转化成一个二进制数。
- 例子:将十六进制的2b.a转换为二进制的步骤如下:
- 一、计算小数点左边:00101011
- b = 1011
- 2 = 0010
- 二、计算小数点右边:1010
- 0.a = 0.1010
- 三、把上述两步的结果综合得到我们要的二进制数:00101011.1010
- 一、计算小数点左边:00101011