目录
今天来总结一下各种进制转换问题
先从我们最熟悉的十进制入手
整型有4种进制形式:
1.十进制: 都是以0-9这九个数字组成,不能以0开头。
2.二进制: 由0和1两个数字组成。
3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。
(就像时间一样我们有24小时,但是每当23:59的下一分钟后不会出现在24:00,而是出现00:00)
首先放一个表格用于观察
二进制 | 十进制 | 八进制 | 十六进制 |
---|---|---|---|
0000 | 0 | 0 | 0 |
0001 | 1 | 1 | 1 |
0010 | 2 | 2 | 2 |
0011 | 3 | 3 | 3 |
0100 | 4 | 4 | 4 |
0101 | 5 | 5 | 5 |
0110 | 6 | 6 | 6 |
0111 | 7 | 7 | 7 |
1000 | 8 | 10 | 8 |
1001 | 9 | 11 | 9 |
1010 | 10 | 12 | A |
1011 | 11 | 13 | B |
1100 | 12 | 14 | C |
1101 | 13 | 15 | D |
1110 | 14 | 16 | E |
1111 | 15 | 17 | F |
我们会发现表格中除了八进制其他的进制都可以利用这个表格进行相互转换
一、十进制转换为二进制、八进制、十六进制
整数转换
1、十进制转二进制、八进制、十六进制的转换原理:对应十进制数分别除以2,8,16,反向取余数,直到商为0终止。
2、具体:
将某个十进制数对应除2、8或16得到的 整数部分保留,作为第二次除对应数时的 被除数,得到的 余数依次记下,重复上述步骤, 直到整数部分为0就结束,将所有得到的 余数最终 逆序输出,则为该十进制对应的二进制数、八进制数或十六进制数。
小数部分转换
1、十进制小数转二进制、八进制、十六进制小数的转换原理:对应十进制小数分别采用 “乘2、8、16取整,顺序输出” 法。
如十进制数0.73转换为二进制数(精确到小数点后四位):
0.73*2=1.46取 1
0.46*2=0.92取 0
0.92*2=1.84取 0
0.84*2=1.68取 1
所以输出0.1001(八进制、十六进制同理)
二、 二进制、八进制、十六进制转换为十进制
整数转换
二进制、八进制、十六进制转换为十进制的转换原理:对应公式为从右向左的数依次乘以对应进制数的从0开始的自增次方 如下
二进制数abcd……(abcd只能取0或1):2^(0)*d+2^(1)*c+2^(2)*b+2^(3)*a……(以此类推)
八进制数0abc……(同上):8^(0)*c+8^(1)*b+8^(2)*a……
十六进制数0xabc……(同上):16^(0)*c+16^(1)*b+16^(2)*a……
小数部分转换
与整数部分类似的小数部分是从小数点后一位指数为-1开始算起,以后依次为-2、-3……
如二进制数0.abcd……(abcd只能取0或1):2^(-1)*d+2^(-2)*c+2^(-3)*b+2^(-4)*a……(以此类推)
八进制数和十六进制也可用相同原理来替换公式
三、八进制、十六进制转换成二进制
十进制数分为千位百位十位个位所以二进制数也有八位 四位 二位 个位即2^(n-1)以此类推;
1、八进制数转换成二进制
原理:八进制数的一位是二进制数的三位
例如
2、十六进制数转换成二进制
原理:十六进制数的一位是二进制数的四位
所以二进制转换为十进制或十六进制可以四个二进制数为一组看,二进制转换为八进制可以三个为一组来看,然后利用上文的表格或者8 4 2 1一位一位的进行转换
四、八进制与十六进制之间的转换
这两者之间的转换可以借助十进制或者二进制完成,可以先将八进制转换成十进制或二进制,再转换成十六进制。通过间接转换来实现。