第二章 数据的表示与运算数据的表示与运算
2.1 进位计数制及其转换
2.2 数据在计算机中的表示
2.3 计算机的运算
2.1 进位计数制及其转换
2.1.1 进位计数制
2.1.2 不同数制间的转换
2.1.1 进位计数制十进制 R=10,可使用 0,1,2,3,4,5,6,7,8,9
二进制 R=2,可使用 0,1
八进制 R=8,可使用 0,1,2,3,4,5,6,7
十六进制 R=16,可使用 0,……,9,A,B,C,D,E,F
,逢 R进 一,借 一 当 R”
基数的概念
2.1.1 进位计数制位权值的概念每个位置上的数据所表示的数值等于该数符乘以该位置上的位权值例,666.66 = 6× 102+ 6× 101+ 6× 100+ 6× 10-1+ 6× 10-2
例,(101101.11) 2 = 1× 25+ 1× 24+ 1× 23+ 1× 22+
0× 21+ 1× 20+ 1× 2-1+ 1× 2-2
32 + 0 + 8 + 4 + 0 +1 + 0.5 + 0.25
(45.75)10
2.1.2 不同数制之间的转换
二、八、十六进制转换为十进制
对任意一个二、八、十六进制数,均可按照前述 r进制数的展开和式方便的转成相应的十进制数
如:
( 1101.01)2=1X23+1X22+0X21+1X20+
0X2-1+1X2-2
十进制数换为 r进制数
(1)十进制整数转换为 r进制
规则:采用除以 r取余数,直到商为零时结束。所得余数序列,先余为低位,
后余为高位。
(2)十进制小数转换为 r进制
规则:采用乘以 r取整数,直到余数为 0
时结束。所得整数序列,先整为高位,
后整为低位。
十进制整数转为二进制整数
1101例 1,(13)10 = ( )2
1 3
6
3
1
0
2
2
2
2
余数
1
0
1
1
二进制数 低 位二进制数 高 位十进制小数转成二进制小数
(0.6875)10 = ( )2
0,6 8 7 5

3 7 5 01.

7 5 0

0.
5 01.

0 1.
整数
1
0
1
1
二进制数 高 位二进制数 低 位例 2:
二进制与八进制、十六进制之间的相互转换
(1) 二进制数转换成八进制数:以小数点为分界点,左右三位一节,不足三位以零补足三位 。
例,(101101.01) 2=(101,101.010)=(55.2)8
(2)八进制数转换成二进制数:将每位八进制数码以三位二进制数表示。
例,(76.42) 8=(111110.100010)2=(111110.10001)2
二进制与八进制、十六进制之间的相互转换
(3)二进制数转换成十六进制数:以小数点为分界点,左右每四位一节,不足四位以零补足四位。
(1111011011.100101011)2 = (11,1101,1011.1001,0101,1000)2
= (3DB.958)16
(4)十六进制数转换成二进制数:将每位十六进制数码以四位二进制数表示。
例,(A3B.C) 16 = (101000111011.1100)2
= (101000111011.11)2
2.2 数据在计算机中的表示计算机中的数据:
① 数值型数据,128,(32.56)8;
② 非数值型数据:“学生”、,0730-8845139”。
2.2.1数值数据的表示
1,计算机中数的有关概念
① 数的长度
1字节( byte)=8比特( bit)
在计算机中,数的长度按比特( bit)来计算。但因存储容量常以“字节”为计量单位,所以数据长度也常以字节为单位计算。
2.2.1数值数据的表示
③ 小数点的表示方法在计算机中表示数值型数据,其小数点的位置总是隐含的。
② 数的符号一般用数的最高位(左边第一位)来表示数的正负号,并约定以,0”表示正,以,1”表示负。
2.2.1数值数据的表示数的定点表示:将计算机中的小数点的位置视为是固定不变的。
① 定点整数格式:
② 定点小数范围,-2n-1~ (2n-1) 和 – 1~ (1 – 2-(n-1))
2,定点数表示方法格式:
2.2.1数值数据的表示
3,浮点数的表示方法格式:
阶码是指数部分的值,表示幂次,其基数通常取 2。
X = + d × 2+E
例如,256.5 的浮点格式 (32位 )为:
00001001 010000000010000000000000
所以 ( 256.5)10 = (0.1000000001)2× 29
阶码,7位 数符 尾数,23位阶符
32位浮点数的范围是:
最大正数,(1- 2- 23)× 2127
最小正数,2- 1× 2- 128= 2- 129
最大负数,- 2- 1× 2- 128=- 2- 129
最小负数,- (1- 2- 23)× 2127
也即,2- 129≤|X| ≤ (1- 2- 23)× 2127
( 1)原码原码就是用最高位表示数的正、负号,0表示正,
1表示负,而数值部分用最高位以后的若干位来表示。
( 2)反码原码变反码的规则为:正数的反码与原码相同;
负数的反码是将它的原码除符号位外逐位取反。
例,二进制数 + 1000110的原码表示为,01000110
二进制数 - 1000110的原码表示为,11000110
2.2.1数值数据的表示
4,带符号数的表示方法
2.2.1数值数据的表示
( 3)补码补码的取码原则是:正数的补码和其原码相同;
负数的补码是它的原码除符号位外逐位取反(即 0变 1,
1变 0),最后在末位加 1。
例,二进制数 + 1000110的补码表示为,01000110
二进制数 - 1000110的补码表示为,10111010
二进制数 - 1000110的反码表示为,10111001
例,二进制数 + 1000110的反码表示为,01000110
原码、补码的几个例子十进制 原 码 补 码
87
-87
127
-127
0
-0
01010111 01010111
11010111 10101001
01111111 01111111
11111111 10000001
00000000 00000000
10000000 00000000
采用补码来表示正、负整数时,+0 和- 0 的取码是完全相同的,而原码对 +0和- 0 的取码是不相同的。
补码的加减法公式
[ X + Y ]补 = [ X ]补 + [ Y ]补
[ X - Y ]补 = [ X ]补 + [- Y ]补
[[ X ]补 ] 补 = [ X ]原例题例,设 X=44 Y=59 求 X +Y =? X- Y =?
由 [ X ]补 = 0101100 [ Y ]补 = 00111011
[ -Y ]补 =11000101 [ -Y ]原 =10111011
故 [ X + Y ]补 = [ X ]补 + [ Y ]补 = 01100111
得 X + Y = + 1100111 = ( + 103)10
由 [ X - Y ]补 = [ X ]补 + [- Y ]补 =11110001
[ X - Y ]原 = [[ X- Y ]补 ]求补 =10001111
得 X- Y = -0001111 = (- 15)10
数值编码十进制数与 8421BCD编码表
1011 0001
0000
0001
0010
0011
0100
0101
0110
0111
0
1
2
3
4
5
6
7
1000
1001
1010 0000
1100 0010
0001 0100
十进制数 8421BCD码 8421BCD码
8
9
10
11
12
13
14
十进制数
15 0001 0101
0001 0011
2.2.2 字符数据的表示
( 1)西文字符的 ASCII编码
( 2)汉字字符的编码
GB2312编码局部表
GB2312编码总体布局
① 汉字交换码汉字的各种编码及其关系
② 汉字机内码 ③ 汉字输入码
④ 汉字字形码 ⑤ 国标 GB18030- 2000
用户 键盘 转换程序存储器汉字库及程序显示器 /打印机输入汉字 输入编码机内码机内码输出字形编码输入码、机内码、字形码之间的关系
2.3 计算机的运算
算术运算:加、减、乘、除
逻辑运算:与、或、非
数据比较:大于、小于、等于、不等于、
大于等于、小于等于
数据传送:输入、输出、赋值
2.3.1 二进制的算术运算
加法
0+0=0 0+1=1 1+0=1 1+1=0 (进位)
减法
0-0=0 1-0=1 1-1=0 0-1=1 (借位)
乘法
0x0=0 1x0=0 0x1=0 1x1=1
除法 与十进制类似逻辑运算
逻辑“与”运算
0x1=0 1x0=0 0x0=0 1x1=1
逻辑“或”运算
0+0=0 0+1=1 1+0=1 1+1=1
逻辑“非”运算
Not 0= 1 Not 1 = 0