计算机科学导论
数字系统
1.分类
- 位置化系统
- 非位置化系统
2.位置化数字系统
在位置化数字系统中,数字符号所占据的位置决定了其表示的值。
符号不能直接存储在计算机中
计算机存储正负数的方式不同
3.二进制系统
数据和程序是以二进制模式,存储在计算机中的,这是因为计算机有电子开关制成,他们仅有开关两种状态,1和0分别表示两种不同的状态。
4.其他进制转化为十进制
对于一个源数 𝑁N 在进制 𝑏b 下(例如,二进制、八进制、十六进制等),假设源数是 𝑑𝑛𝑑𝑛−1…𝑑1𝑑0dnd**n−1…d1d0(从右到左的位),其中 𝑑𝑖d**i 是第 𝑖i 位上的数字(或字符),其十进制值 𝐷D 可以通过以下公式计算:
5.十进制转化为其他进制
1.转化为二进制–整数部分
-
除以2:将十进制数除以2。
-
记录余数:记录下每次除法运算的余数(0或1)。
-
更新商:将除法运算后的商作为下一次除法的被除数。
-
重复:重复上述步骤,直到商为0。
-
拼接余数:将所有记录的余数按倒序排列,得到的结果就是二进制数。
例如:将十进制数13
转换为二进制13 ÷ 2 = 6 余数 1 6 ÷ 2 = 3 余数 0 3 ÷ 2 = 1 余数 1 1 ÷ 2 = 0 余数 1
将所有余数按倒序排列,得到二进制数
1101
2.小数部分
将小数部分乘以2,记录下整数部分。然后用结果的小数部分继续乘以2,重复这个过程直到小数部分为0(或达到所需的精度)。记录下每一步的整数部分。
例如
将十进制小数 6.375
转换为二进制:
-
整数部分转换:先将整数部分
6
转换为二进制。610=1102610=1102
-
小数部分转换:
- 取小数部分
0.375
,乘以2得到0.75
,记录下整数部分0
。 - 取
0.75
,继续乘以2得到1.5
,记录下整数部分1
。 - 取
0.5
,继续乘以2得到1.0
,记录下整数部分1
。
因为小数部分
0.0
,所以停止。将所有记录的整数部分按顺序排列,得到小数部分的二进制表示
011
。 - 取小数部分
-
组合:将整数部分和小数部分组合起来,得到最终的二进制表示
110.011
。
6.二进制和十六进制的互相转化
从二进制转十六进制
- 将二进制数从右到左分成每4位一组。如果最左边的组少于4位,可以在其前面加零补齐。
- 将每一组转换成相应的十六进制数字。
示例:
将二进制数 110110101011
转换为十六进制:
-
从右到左分组:
0011 0110 1010 1011
-
每组转换成十六进制:
0011
转换为3
0110
转换为6
1010
转换为A
1011
转换为B
所以,
110110101011
转换为36AB
。
从十六进制转化为二进制
-
将十六进制数的每一位转换为4位的二进制数**。
示例:
将十六进制数3F7
转换为二进制: -
每一位转换成二进制:
3
转换为0011
F
转换为1111
7
转换为0111
所以,
3F7
转换为0011 1111 0111
。
7.二进制和八进制的互相转化
二进制转化为八进制
- 将二进制数从右到左分成每3位一组。如果最左边的组少于3位,可以在其前面加零补齐。
- 将每一组转换成相应的八进制数字。
示例:
将二进制数 110101011
转换为八进制:
-
从右到左分组:
11 010 101 1
- 在最左边补齐:
011 010 101 1
- 再分组为每3位一组:
011 010 101
- 在最左边补齐:
-
每组转换成八进制:
011
转换为3
010
转换为2
101
转换为5
所以,
110101011
转换为325
。
从八进制转二进制
- 将八进制数的每一位转换为3位的二进制数。
示例:
将八进制数 325
转换为二进制:
-
每一位转换成二进制:
3
转换为011
2
转换为010
5
转换为101
所以,
325
转换为011 010 101
。