今天我们来总结进制的知识点,首先我们要知道的是二进制、八进制、十进制、十六进制是数值的不同表现形式。
二进制
满二进一,每一位都是由0~1的数字组成
例如:10011、11011、10101这些都是二进制数字
十进制
满十进一,每一位都是由0~9的数字组成
我们平常使用的数字就是十进制的,如25、65、74
十进制与二进制互相转换
在学习进制转换之前,我们要了解十进制是如何计算的,知道进制的权重
我们就以456为例
百位 | 十位 | 个位 | ||
十进制的位 | 4 | 5 | 6 | |
权重 | 10^2 | 10^1 | 10^0 | |
权重值 | 100 | 10 | 1 | |
求值 | 4*100 | 5*10 | 6*1 | =456 |
那么二进制亦是如此
如1101
二进制的位 | 1 | 1 | 0 | 1 | |
权重 | 2^3 | 2^2 | 2^1 | 2^0 | |
权重值 | 8 | 4 | 2 | 1 | |
求值 | 1*8 | 1*4 | 1*2 | 1*1 | =13 |
十进制转二进制
2 | 125 | 余数为1 | ||||||
2 | 62 | 余数为0 | ||||||
2 | 31 | 余数为1 | ||||||
2 | 15 | 余数为1 | ||||||
2 | 7 | 余数为1 | ||||||
2 | 3 | 余数为1 | ||||||
2 | 1 | 余数为1 | ||||||
0 | ||||||||
十进制数除以2
由上往下
依次所得的余数就是十进制转换出的
二进制
八进制
满八进一,每一位都是由0~7的数字组成
0开头的数字,都会被当成八进制的数字,如0153、0251、0753
八进制与二进制的相互转换
八进制的数字是由0~7的数字,最多由3个二进制就足够了
八进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
二进制 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
所以在二进制转八进制的时候,从二进制序列中右边低位开始向左每3个二进制位会换算一个八进制,剩余不够3个二进制的直接换算,如01101011
二进制 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
八进制 | 1 | 5 | 5 |
十六进制
满十六进一,每一位都是由0~9,a~f的数字组成
0x开头的数字,都会被当成十六进制数字,如0x6b、0x9e、0x8f
十六进制与二进制的相互转换
十六进制数字中每一位都是由0~9,a~f的数字组成,各自写成二进制,最多有4个二进制位就够了
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
十六进制 | a | b | c | d | e | f | ||||
二进制 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
所以在二进制转十六进制的时候,从二进制序列中右边低位开始向左每4个二进制位会换算一个十六进制,剩余不够4个二进制的直接换算,如01101011
二进制 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
十六进制 | 6 | b |