首页 > 代码库 > 补基础:自学:计算机科学导论 第二章 数字系统
补基础:自学:计算机科学导论 第二章 数字系统
2.2 位置化数字系统
在数字中符号所占据的位置决定了其表示的值。在该系统中,数字这样表示:
+-(Sk-1 ……S2S1S0 ……S-l)b
它的值是: n = +-(Sk-1 * bk-1 + …… + S1 * b 1 + S0 * b0 + S-1 * b-1 + …… + S-l * b-l)
S是一套符号集,;b是底(或基数),它等于S符号集中的符号总数。
2.2.1 十进制系统(以10为底)
十进制(decimal)来源于拉丁词根decem。
在该系统中,底b = 10, 并且用10个符号来表示一个数。符号集S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
1. 整数
计算方法:
n = +-(Sk-1 * 10k-1 + …… + S1 * 10 1 + S0 * 100 )
Sk是1个数码, b=10是底,k是数码的数量。
例2.1 十进制系统中使用位置量表示整数+224
N = + (2* 102 + 2* 10 1 + 4* 100 )
2.实数
n = +-(Sk-1 * 10k-1 + …… + S1 * 10 1 + S0 * 100 + S-1 * 10-1 + …… + S-l * 10-l)
与上面例子类似,用十进制数的各位数字乘以10的n次幂
2.2.2 二进制系统(以2为底)
二进制(binary)来源于拉丁词根bini
在该系统中,底b = 2,并且用两个符号来表示一个数,即S = {0, 1}。
数据和程序是以二进制模式(即位串)存储于计算机中的。这是因为计算机由电子开关制成,它们仅有开和关两种状态(即1和0)。
1.整数
N = +-(Sk-1 * 2k-1 + …… + S1 * 2 1 + S0 * 20 )
例2.4 十进制数25等值的二进制数(11001)
N = 1* 24 + 1* 23+ 0* 22 + 0 * 21 + 1 * 20 => N = 16 + 8 + 0 + 0 + 1 = 25
2. 实数
与整数类似
2.2.3 十六进制系统(以16为底)
尽管二进制系统用于存储计算机数据,但是它并不便于在计算机外部表示数字,因为二进制符号过长。而十进制又不能直接显示存储在计算机中的是什么。
所以,十六进制和八进制则是用来克服这个问题。
十六进制系统(hexadecimal)来源于希腊词根hex和拉丁词根decem。
在该系统中, 底b = 16并且用16个符号来表示一个数。字符集是S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}。其中A, B, C, D, E, F分别等于10, 11, 12, 13, 14, 15。
1. 整数
2. 实数
以上两种数据类型计算方式都与二进制十进制相仿,只是将底b = 16。但十六进制的实数并不常见。
2.2.4 八进制系统(以8为底)
八进制(octal)来源于拉丁词根octo。
在该系统中,底b = 8并且用8个符号来表示一个数,S = {0, 1, 2, 3, 4, 5, 6, 7}
2.2.6 转换
1. 其他进制到十进制的转换
例2.8: 将二进制数110.11转换为十进制数
二进制 1 1 0 1 1 位置量 22 21 20 2-1 2-2 各部分结果 4 + 2 + 0 + 0.5 + 0.25 十进制 6.75
十六进制,八进制同理
2.十进制到其他进制的转换
1)转换整数部分
例2.11 将十进制数35转换为二进制数。从这个十进制数开始,一边连续寻找除以2得到的商和余数,一边左移。
35 % 2 = 1 –>二进制第一位
35 / 2 = 17 % 2 = 1 –>二进制第二位
17 / 2 = 8 % 2 = 0 –>二进制第三位
8 / 2 = 4 % 2 = 0 –>二进制第四位
4 / 2 = 2 % 2 = 0 ->二进制第五位
2 / 2 = 1 % 2 = 1 –>二进制第六位
1 / 2 = 0
最终结果: 100011
其他各个进制同理
2)转换小数部分
将小数部分连续乘以2,将结果的整数部分作为二进制位上的数,再取小数部分乘以2,如此反复,直到小数部分为0。
3)数码的数量
通过k = [logbN]来计算出数码的数量。
3. 二进制与十六进制的转换
这两个进制之间存在一种关系:二进制中的4位恰好是十六进制中的1位。
例2.19 将二进制数10011100010转换为十六进制
a).先将这个二进制数拆分,4位一个单位: 100 1110 0010.
b).二进制100 = 十进制4 = 十六进制4
二进制1110 = 十进制14 = 十六进制E
二进制0010 = 十进制2 = 十六进制2c).最终结果为4E2
反之同理
4. 二进制与八进制的转换
它们之间存在这么一种关系:二进制中的3位恰好是八进制中的1位。
与二进制,十六进制互转同理
5. 八进制与十六进制转换
-). 从八进制转到十六进制:先将八进制转到二进制。将位数重排成4位一组,找到十六进制的对等值
-). 从十六进制转到八进制:先将十六进制转到二进制。将位数重排成3位一组,找到八进制的对等值。
补基础:自学:计算机科学导论 第二章 数字系统