1 位置化数字系统
位置化数字系统即在数字中符号所占据的位置决定了其表示的值。数字表示如下: ± ( S k − 1 ⋅ ⋅ ⋅ S 2 S 1 S 0 . S − 1 S − 2 ⋅ ⋅ ⋅ S − l ) b = ± S k − 1 × b k − 1 ⋅ ⋅ ⋅ S 0 × b 0 . S − 1 × b − 1 + ⋅ ⋅ ⋅ + S − l × b − l ±(S_{k-1}···S_2S_1S_0.S_{-1}S_{-2}···S_{-l})_{b}=±S_{k-1}×b^{k-1}···S_0×b^0.S_{-1}×b^{-1}+···+S_{-l}×b^{-l} ±(Sk−1⋅⋅⋅S2S1S0.S−1S−2⋅⋅⋅S−l)b=±Sk−1×bk−1⋅⋅⋅S0×b0.S−1×b−1+⋅⋅⋅+S−l×b−l
2 十进制、二进制、八进制和十六进制的位置化数字系统表示及其相互之间的转换
2.1 十进制、二进制、八进制和十六进制的位置化数字系统表示
很明显,十进制的基数 b = 10 b=10 b=10,二进制的基数 b = 2 b=2 b=2等等,那么这4种进制的位置化数字系统描述如下:
± ( S k − 1 ⋅ ⋅ ⋅ S 2 S 1 S 0 . S − 1 S − 2 ⋅ ⋅ ⋅ S − l ) 10 ±(S_{k-1}···S_2S_1S_0.S_{-1}S_{-2}···S_{-l})_{10} ±(Sk−1⋅⋅⋅S2S1S0.S−1S−2⋅⋅⋅S−l)10
± ( S k − 1 ⋅ ⋅ ⋅ S 2 S 1 S 0 . S − 1 S − 2 ⋅ ⋅ ⋅ S − l ) 2 ±(S_{k-1}···S_2S_1S_0.S_{-1}S_{-2}···S_{-l})_{2} ±(Sk−1⋅⋅⋅S2S1S0.S−1S−2⋅⋅⋅S−l)2
± ( S k − 1 ⋅ ⋅ ⋅ S 2 S 1 S 0 . S − 1 S − 2 ⋅ ⋅ ⋅ S − l ) 8 ±(S_{k-1}···S_2S_1S_0.S_{-1}S_{-2}···S_{-l})_{8} ±(Sk−1⋅⋅⋅S2S1S0.S−1S−2⋅⋅⋅S−l)8
± ( S k − 1 ⋅ ⋅ ⋅ S 2 S 1 S 0 . S − 1 S − 2 ⋅ ⋅ ⋅ S − l ) 16 ±(S_{k-1}···S_2S_1S_0.S_{-1}S_{-2}···S_{-l})_{16} ±(Sk−1⋅⋅⋅S2S1S0.S−1S−2⋅⋅⋅S−l)16
举个例子,10进制表示实数+24.13如下:
位置量 10^1 10^0 10^-1 10^-2
数字 2 4 1 3
值 2*10^1+4*10^0+1*10^-1+3*10^-2 = 24.13
2.2 其它进制转十进制
数码乘以其在源系统中的位置并求和便得到十进制中的数。
- 二进制 ( 110.11 ) 2 (110.11)_2 (110.11)2转换为十进制
二进制 1 1 0 . 1 1
位置量 2^2 2^1 2^0 2^-1 2^-2
十进制 1*2^2+1*2^1+0*2^0+1*2^-1+1*2^-2=6.75
- 十六进制 ( 1 A . 23 ) 16 (1A.23)_{16} (1A.23)16转换为十进制
十六进制 1 A . 2 3
位置量 16^1 16^0 16^-1 16^-2
十进制 1*16^1+10*16^0+2*16^-1+3*16^-2=26.137
2.3 十进制转其它进制
十进制数转其它进制数需要两个过程:一是用于整数部分(连除法),二是用于小数部分(连乘法)。
- 十进制数35转为二进制
十进制 35 17 8 4 2 1 0
二进制 1 1 0 0 0 1 = 110001
- 十进制0.634转换为八进制,精确到小数4位
十进制 0.634 0.072 0.576 0.608 0.864
八进制 5 0 4 4 = .5044
- 十进制数178.6转换为十六进制,且精确到1位小数
十进制 0 11 178 0.6 0.6
十六进制 B 2 . 9
2.4 其余进制之间的转换
- 二进制转十六进制
- 二进制转八进制
- 八进制转十六进制
3 计算机存储整数
整数是完整的数字,没有小数部分。整数通常使用定点表示法存储在内存中,定点表示法如下:
3.1 无符号表示法
无符号整数就是没有符号的整数,其范围介于0到 2 n − 1 2^n-1 2n−1之间(n表示计算机中分配用于表示无符号整数的二进制位数)。
- 将整数变成二进制
- 如果二进制位数不足n位,则在二进制整数的左边补0,使它的总位数为n位。如果位数大于n,会导致溢出的情况。
例如,7存储在8位存储单元中: 7 → 111 → 00000111 7→111→00000111 7→111→00000111。258存储在16位存储单元中: 258 → 100000010 → 0000000100000010 258→100000010→0000000100000010 258→100000010→0000000100000010。如果整数大小超过存储单元的位所能表达的极限,会发生溢出的情形,例如20存储在4位的存储单元中:
3.2 符号加绝对值表示法
在符号加绝对值格式表示法中,最左边用于定义整数的符号,0表示正数,1表示负整数。剩下的n-1位用于表示数字的绝对值(因此,最大值仅为无符号最大数的一半)。4位的符号加绝对值的表示法如下(注意有两个0:+0和-0):
例如,+28存储在8位存储单元中: 28 → 0011100 → 00011100 28→0011100→00011100 28→0011100→00011100。-28存储在8位存储单元中: − 28 → 0011100 → 10011100 -28→0011100→10011100 −28→0011100→10011100。如果整数大小超过存储单元的位所能表达的极限,会发生溢出的情形:
3.3 二进制补码表示法
目前计算机都使用二进制补码表示法来存储n位存储单元中的有符号整数。在二进制补码表示法中,最左边用于定义整数的符号,0表示正数,1表示负整数。二进制补码表示法步骤如下:
- 将整数变成n位二进制
- 如果整数是正数或零,原样存储,如果是负数,计算机取其补码存储。补码的计算:取反码+1。
例如,28存储在8位存储单元中: 28 → 0011100 → 00011100 28→0011100→00011100 28→0011100→00011100。-28存储在8位存储单元中: − 28 → 0011100 → 11100100 -28→0011100→11100100 −28→0011100→11100100。同样会出现溢出的情形:
4 计算机存储实数
4.1 浮点表示法
实数是带有整数部分和小数部分的数字。带有很大的整数部分或很小的小数部分的实数不应该用定点表示法存储,而应该采用浮点表示法,在浮点表示法中数字由3部分组成:
例如,-0.0000000000000232可以表示为 − 2.3 2 − 14 -2.32^{-14} −2.32−14。
4.2 规范化
为了使表示法的固定部分统一,科学计数法(十进制)和浮点表示法(二进制)在小数点左边使用了唯一的非零数码,称为规范化。
十进制 ± d.xxxxxxxxxxx 注意:d是1到9,x为0到9
二进制 ± 1.yyyyyyyyyyy 注意:y只能为0或1
4.3 符号、指数和尾数
在一个二进制数规范化之后,只需要存储该数的3部分:符号、指数和尾数(小数点右边的数)。
注意:小数点和定点部分左边的位1没有存储,是隐含的。
- 符号:用一个二进制位存储(0或1)
- 指数:小数点移动的位数,可正可负。采用余码表示法存储。
- 尾数:尾数是小数点右边的二进制数。尾数是作为无符号整数存储的。
指数是有符号的数,尽管可以采用二进制补码表示法存储,但是被一种余码表示法所替代。在余码系统中,正的和负的整数都可以作为无符号数存储。为了表示正的或负的整数,将正整数(偏移量 2 m − 1 − 1 2^{m-1}-1 2m−1−1)添加到每一个数字中。优点在于所有的整数都是整数。下面展示m=4的情形:
4.4 IEEE标准
IEEE定义了几种存储浮点数的标准。常用的单精度和双精度标准如下:
注:单精度有时被称为余127码,因为其偏移量为127。双精度有时被称为余1023码,因为其偏移量为1023。IEEE标准浮点数的存储步骤如下:
- 在S中存储符号
- 将数字转换为二进制
- 规范化
- 找到S(指数)和M(尾数)
- 连接S、E和M
例如,十进制数5.75的单精度表示法如下:
1、S = 0
2、5.75 = 101.11
3、101.11 = 1.0111 × 2^2
4、E = 2 + 127 = 129 (偏移量为127)
5、M = 01110000000000000000000
表示如下:
0 10000001 01110000000000000000000
S E M
今天的文章数字系统举例_计算机数据单位[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89665.html