loading

进制之间的转换

二进制

计算机的信息都是以二进制数存储的。计算机内部一律采用二进制的原因:

  1. 电压只有两个状态:高和低;用数字表示就是 1 和 0。
  2. 二进制的逻辑运算简单。逻辑只有 “0” 和 “1”,即真和假。
  3. 二进制的运算法则简单。

数制有六十进制、十六进制、十进制、八进制、二进制等。平常用得最多的是十进制,计算机内部使用的是二进制,编程还要用到八进制和十六进制。

基数与位权

基数就是进制中能表示数字的符号的个数。十进制有 0~9 共是个数字符号,所以基数是 10。二进制的基数是 2。某种进制允许使用的数字符号有多少个,其基数就是多少。

位权就是以基数为底,以数字所在的序号为指数的整数幂。十进制 12 的基数是 10,从右到左(个位到十位)的数字符号的序号依次是 0 和 1。那么,数字符号 2 的位权是 100;数字 1 的位权是 101

十进制 12 又可以这样表示:1×101+2×100=12。

二进制 1.1:

\[1.1=0×2^1+1×2^0+1×2^-1 \]

十进制 886.88:

\[886.88=8×10^2+8×10^1+6×10^0+8×10^-1+8×10^-2 \]

R进制转为十进制

R 进制转换为十进制要按位权展开求和。

(1)二进制数 1001 转换为十进制数

\[1001=1×2^3+0×2^2+0×2^1+1×2^0=9 \]

(2)八进制数 35 转换为十进制数

\[35=3×8^1+5×8^0=29 \]

(3)十六进制数 32CF 转换为十进制数

\[32CF=3×16^3+2×16^2+12×16^1+15×16^0=13007 \]

十进制转为R进制

整数转换

十进制整数化为 R 进制数:除 R 取余。

(1)把 237.8125 转换为二进制数。

从低往上依次填写的余数就是二进制的整数部分得到 11101101。

(2)把 58506.8125 转换为八进制数。

从低往上依次填写的余数就是八进制的整数部分得到 162212。

小数转换

十进制纯小数化为 R 进制数:乘 R 取整法,得 R 进制纯小数。

(1)把 0.8125 转换为二进制数。

\(0.8125×2=1.625\) …… 整数部分为 1

\(0.625×2=1.25\) …… 整数部分为 1

\(0.25×2=0.5\) …… 整数部分为 0

\(0.5×2=1\) …… 整数部分为 1

从高往下依次填写的整数就是二进制的小数部分得到 0.1101。

(2)把 0.8125 转换为八进制数。

从高往下依次填写的整数就是二进制的小数部分得到 0.64。

二进制转八进制

二进制的基数是 2,八进制的基数是 8,由于 8 是 2 的整数次幂,即\(8=2^3\),所以一位八进制数正好相当于3位二进制数。以小数点为界限,分别向左、向右每3位一组划分,最后剩下的位数不够3位时用0补齐,再进行转换。

将二进制数 111111011.0100001 转换为八进制数,首先以小数点为界限,以3位数为一组进行划分:

整数部分001原本是1,由于是最后剩下的,所以用0补齐;小数部分100原本也是1,且也是最后剩下的,所以用0补齐。

将每组对于的八进制数写出来:

所以最后的结果是:1111111011.0100001=1773.204。

八进制转二进制

八进制转换为二进制就非常的简单了,只需要把八进制的每一位数字转换成3位二进制数即可,注意,如果二进制只有两位或者两位以下时,用0补齐这组数的最前面即可

将八进制数 72.531 转换为二进制数:

所以最后的结果是:\(72.531=111010.101011001\)

二进制转十六进制

二进制的基数是 2,十六进制的基数是 16,由于 16 是 2 的整数次幂,即\(16=2^4\),所以一位十六进制数正好相当于4位二进制数。以小数点为界限,分别向左、向右每4位一组划分,最后剩下的位数不够4位时用0补齐,再进行转换。

将 111101010011.10111 转换为十六进制数,首先以小数点为界限,以4位数为一组划分,再依次对其进行转换:

所以,最终结果为\(111101010011.10111=F53.B8\)

十六进制转二进制

十六进制转换为二进制,直接将十六进制的每一位数字对应的二进制数写出来即可:

所以,最终结果为\(F53.B8=111101010011.10111\)

八进制与十六进制互转

八进制与十六进制之间的转换,最简单的方法就是借助于二进制来实现,先将八进制转换为二进制,然后二进制再转换为十六进制。同样的,十六进制转换为八进制也是借助于二进制实现。

进制对照表

二进制 八进制 十进制 十六进制
0 0 0 0
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
posted @ 2022-01-13 00:39  Himmelbleu  阅读(794)  评论(0编辑  收藏  举报