计算机中常用的数制
概念
-
使用数字量表示物理量时, 仅用一位编码一般不够用, 因此经常会使用多位数码进位计数制
\[0 \backsim 9 \rightarrow 10 \backsim 99 \rightarrow 100 \backsim 999 \rightarrow \cdots \cdots
\]
-
多位数码中每一位的构成方法以及从低位到高位的进位规则称为数制
-
数字电路中常用技术数制
- 十进制:
0 ~ 9
- 二进制:
0
, 1
- 八进制:
0 ~ 7
- 十六进制 :
0 ~ 9
, A
, B
, C
, D
, E
, F
-
任何一种进位计数制中,任何一个数都由整数和小数两部分组成。
-
两种书写形式: 位置计数法
, 多项式表示法
计算机常用二进制位
- 计算机中常用到的二进制位数有8位、16位、32位,可以分别用2位、4位、8位十六进制数表示;
- 其他任意进制的分析方法和二进制、十进制、十六进制相同。
进制计数两种方法
-
位置计数法
\[(N)_{R} = a_{n-1} a_{n-2} ... a_1a_0 \cdot a_{-1}a_{-2} ... a_{-m}
\]
\[= 5 \times 10^2 + 2 \times 10^1 + 4 \times 10^0 + 3 \times 10^{-1} + 7 \times 10^{2}
\]
-
多项式表示法
: 根据位置计数法, 可得到任意(R)进制数的展开式的普遍形式:
\[(N)_R = \sum_{i=-m}^{n-1}{a_iR^i}
\]
R
称为计数的 基数
a_i
是第i位的 系数
R^i
称为第i位的 权
十进制
二进制
八进制
十六进制
-
十六个不同数码: 0 ~ 9
, A
, B
, C
, D
, E
, F
-
计数基数16, 进位关系为: 逢十六进一
\[(N)_{16} = \sum_{i=-m}^{n-1}{a_i \times 16^{i}}
\]
- 十六进制中的
A ~ F
与十进制的对应关系为:
- A ~ 10
- B ~ 11
- C ~ 12
- D ~ 13
- E ~ 14
- F ~ 15
进制转换
进制互换方法
-
十进制转换成任意进制R的普遍方法:
-
小数部分乘以R取进位
-
整数部分除以R取余数 注意方向
-
任意进制R转换成十进制的普遍方法:
-
二进制和十六/八进制相互转换的方法:
- 按1位十六/八进制对应于4位/3位/二进制数的对应关系进行转换
-
任意进制M和任意进制N之间的相互转换方法,
-
先将M(N)进制数转换成十进制数,
-
再将十进制数转换成N(M)进制数
二 > 十
十 > 二
-
整数部分
-
对于十进制整数(N)10, 假设等值的二进制为:
\[(a_{n-1}a_{n-2}\cdots a_0)_2
\]
-
那么,
\[\begin{align}
(N)_{10} &= a_{n-1}2^{n-1}+a_{n-2}2^{n-2}+...+a_12^1 + a_02^0 \&= 2(a_{n-1}2^{n-2}+a_{n-2}2^{n-3}...+a_1) + a_0
\end{align}
\]
-
则: 将(N)10 除2, 余数为a_0;
-
如果上式括号内的部分(商)再除以2,余数即a_1;
-
依此类推, 即可求得:
\[a_2a_3...a_{n-2}a_{n-1}
\]
-
由以上分析出来胡规律, 可以得到整数部分的转换方法:
-
小数部分
-
对于十进制小数(S)10, 假设等值的二进制数为:
\[(0.a_{-1} a_{-2} a_{-3}...a_{-m})_2
\]
-
那么,
\[\begin{align}
(S)_{10} &= a_{-1}2^{-1} + a_{-2}2^{-2}+...+a_{-m}2^{-m} & (1-1)\2(S)_{10} &= a_{-1}+(a_{-2}2^{-1}+a_{-3}2^{-2}+...+a_{-m}2^{-m+1}) &(1-2)
\end{align}
\]
-
规律: 将(S)10乘以2, 整数进位就是a_-1
-
对式(1-2)中括号内部分乘以2, 整数进位即:
\[a_{-2}
\]
-
依次类推, 既得:
\[a_{-3}a_{-4}...a_{-m}
\]
-
由前面的分析可以得到小数部分的转换方法:
-
不是所有十进制小数都能完整转换为二进制小数.可能过程会丢失精度.
二 > 十六
-
每四位二进制数
对应一位十六进制数
, 由低
位到高
位排列
-
不足四位的,整数部分高位补0,小数部分低位补0
-
例如: (11010110.0101101)2
\[\begin{align}
(& \underline{1101} \ \underline{0110}.\underline{0101}\ \underline{1010})_2 \ & \ \ \ \downarrow \ \ \ \ \downarrow \ \ \ \ \ \ \downarrow \ \ \ \ \downarrow \ = (&\ \ \ D \ \ \ \ \ \ 6 \ \ \ . \ \ \ \ 5 \ \ \ \ \ A \ \ )_{16}
\end{align}
\]
二 > 八
-
转换方法: 每三位二进制数对应一位八进制数, 由低位到高位排列
-
不足三位的,整数部分高位补0,小数部分低位补0。
-
例如: (11010110.01011010)2
\[\begin{align}
(& \underline{011} \ \underline{010} \ \underline{110}. \underline{010} \ \underline{110} \ \underline{100})_2 \ & \ \downarrow \ \ \ \downarrow \ \ \downarrow \ \ \ \ \downarrow \ \ \ \downarrow \ \ \ \downarrow \ = (&\ \ 3 \ \ \ \ \ 2 \ \ \ \ \ 6. \ \ \ \ \ 2 \ \ \ \ \ 6 \ \ \ \ \ 4 \ \ )_{8}
\end{align}
\]
十六 > 二
-
转换方法: 与二 > 十六转换类似,将十六进制数的每一位用等值的四位二进制数代替。
-
例如: (7C5.F9)16
\[\begin{align}
(& \ \ \ 7 \ \ \ \ \ \ \ C \ \ \ \ \ 5. \ \ \ \ \ \ \ F \ \ \ \ \ \ \ 9 \ \ \ )_{16} \ & \ \ \downarrow \ \ \ \ \ \downarrow \ \ \ \ \downarrow \ \ \ \ \ \ \downarrow \ \ \ \ \ \downarrow \= (& 0111 \ 1100 \ 0101. \ 1111 \ 1001)_2 \\end{align}
\]
八 > 二
十六 > 十
-
方法:与二 - 十 转换类似,利用式(1-5)将十六进制数按权展开
,相加即得。
-
八进制与十六进制方法相同
-
例: (B8E.A)16
\[\begin{align}
&= B×16^2 +8×16^1 +E×16^0 +A×16^{-1} \&= 11×16^2 +8×16^1 +14×16^0 +10×16^{-1} \&= 2816+128+14+0.625 \&=(2958.625)_{10}
\end{align}
\]
十 > 十六
-
转换方法1:先将十进制数转换为二进制数,再将二进制数转换为十六进制数。
-
转换方法2:与十进制转换成二进制的方法类似,小数部分乘以16取进位,整数部分除以16取余数。
-
八进制与十六进制方法相同。
-
例如: (795.6015625)10 = (31B.9A)16

-
十进制转换成任意进制R的普遍方法:小数部分乘以R取进位,整数部分除以R取余数。
数制与进制转换
原文:https://www.cnblogs.com/ieeqc/p/14457374.html