文章目录
1. 常见的进制特点
日常生活中,我们采用十进制(decimal)
,逢十进一
在计算机科学领域,常用十六进制(hexadecimal)
和二进制(binary)
当然,还有八进制(octal)
的设计
十进制
(decimal)
:数字 0 − 9 0-9 0−9这十个数字组成二进制
(binary)
:数字0和1组成八进制
(octal)
:数字 0 − 7 0-7 0−7组成,为了和其他进制区分,以 0 0 0开头,例如 0137 0137 0137十六进制
(hexadecimal)
:数字 0 − 9 0-9 0−9和字母A-F组成,A-F分别代表 10 − 15 10-15 10−15这六个数,为了和其他进制区分,以0x开头,例如0x5F
2. n进制转十进制
任何进制转十进制都遵循按权展开相加的规则,我们利用具体的例子来解释
2.1. 二进制转十进制
假如说一个8位的二进制数: 10110011 1011 0011 10110011,将其转换为十进制
左边是数的高位,右边是数的低位,从右至左,每个数占的权重不同,依次是:
2
0
,
2
1
.
.
.
2
7
2^0,2^1...2^7
20,21...27
那么计算步骤即是
1 × 2 0 + 1 × 2 1 + 0 × 2 3 + 0 × 2 4 + 1 × 2 4 + 1 × 2 5 + 0 × 2 6 + 1 × 2 7 = 179 1\times2^0 + 1 \times 2^1 + 0 \times 2^3 + 0\times2^4 + 1\times2^4+1\times2^5+0\times2^6+1\times2^7 = 179 1×20+1×21+0×23+0×24+1×24+1×25+0×26+1×27=179
2.2. 十六进制转十进制
假如说一个十六进制数为0x3F,将其转换为十进制,此时的权重基础是16的几次方了
那么计算步骤即是:
15 × 1 6 0 + 3 × 1 6 1 = 63 15\times16^0+3\times16^1 = 63 15×160+3×161=63
八进制数在计算机科学中并不常用,转换方法同上,就不再赘述了
3. 十进制转n进制
十进制转n进制都遵循一个原则:除基取余,上右下左
3.1. 十进制转二进制
27转成二进制:
不断除以2找到余数,直到除到0为止,从下到上是高位到低位的顺序
3.2. 十进制转十六进制
135转成十六进制:
不断除以16找到余数,直到除到0为止,从下到上是高位到低位的顺序
八进制数在计算机科学中并不常用,转换方法同上,就不再赘述了
4. 十六进制和二进制之间的转换
二进制有个缺点就是表示起来数据过于冗长,而十六进制就能缩短数据表示,更为简洁
一位十六进制的数代表四位二进制数,下表是二者关系:
例如0x1E36
希望我的文章对你有所帮助,嘻嘻!若有错误的地方还望大家批评指正,谢谢大家阅读!