计计计计计 计计计计计 ( ( 计计计 计计计 ) ) ---- ---- 计计计计计 计计计计计
Jan 03, 2016
4.1 进位计数制及其运算
1. 基数 (Radix)
不同的计数制是以基数 r 来区分的:
• r = 10 为十进制,可使用 0 , 1 ,…, 9 共 10 个数符;
• r = 2 为二进制,可使用 0 , 1 共 2 个数符;
• r = 8 为八进制,可使用 0 , 1 , 2 ,…, 7 共 8 个数符;
• r = 16 为 十 六 进 制 , 可 使 用 0 , 1 , 2 ,
…, 9 , A , B , C , D , E , F 共 16 个数符。
4.1.1 进位计数制及其转换
2. 二进制数
计算机内部是一个二进制数字世界,只有两个数符即 0 和 1 。采用二进制表示信息有以下几个优点:
(1) 易于物理实现
(2) 二进制数运算简单
(3) 机器可靠性高
(4) 通用性强
二进制运用于数值信息编码,适用于各种非数值信息的数字化编码。特别是仅有的两个符号 0 和 1 正好与逻辑命题的两个值“真”与“假”相对应 .
3. r 进制转换为十进制
11 0 1 1 0 1... . ... ( ) ... ... n m
n m n ma a a a a r a r a r a a r a r
2101232 212021202121)01.1101(
25.1325.0148
5.1595.072412884878382)4.237( 10128
75.16575.0516016121651610).5( 10116 CA
对于任意的 r进制数,可以用以下的展开和式
其中 r为基数,整数为 n+1位,小数为m位。
例 : 分别把 (1101.01)2,(237.4)8,(A5.C)16转换为十进制数。
解 : 分别按以上展开和式得
4. 十进制整数转换为 r 进制数
1 0... ( )nt a a a r
1 0 1 0... ( ) ... nn nt a a a r a r a r a
1 2 1 0((... ((0 ) ) ... ) )n na r a r a r a r a
1 2 1(... ((0 ) ) ... )n na r a r a r a 0a
1 2(... ((0 ) ) ... )n na r a r a 1a
na
十进制整数 t转换为 r进制整数:
转换规则为 除 r取余法 : 由 r进制整数按位展开公式的以下变形式
t除以 r,商为整数 ,余数为
所得商再除以 r,商为数
依此类推,直至商为 0 ,余数为
,余数为
例:求 13= ( ) 2
解 : 实施除 2 取余
商 余数
13/2=6 1 (低)
6/2 =3 0
3/2 =1 1
1/2 =0 (结束) 1 (高)
十进制数 13 转换为二进制数的结果为 13=(1101)2
5. 十进制小数 t 转换为 r 进制小数
十进制小数 t转换为 r 进制小数: 。
转换规则为乘 r取整法 : 由 r进制小数按位展开公式的以下变形式
t乘 r ,得整数部分为 ,小数部分为 ;
小数部分再乘 r ,得整数部分为 ,小数部分为 ;
依此类推,直至小数部分为 0 ,此时整数部分为 ,转换完成。
1a
2a
ma
1 21 1 20. ( ) m
m mt a a r a r a r a r L L
1 2
1 1 1( ( (0 ) ) )ma a a
r r r L L
10. ( )mt a a r L
2
1 1( (0 ) )ma a
r r L L
1( (0 ) )ma r L L
6. 八进制转换为二进制
1 位八进制数 0 1 2 3 4 5 6 7
3 位二进制数
000
001
010
011
100
101
110
111
八进制转换为二进制 : 根据下表将每位八进制数码展开为 3位二进制数码。
表 4-1 二进制与八进制转换表
例求 (30.14)8 = ( )2
(30.14)8 = 011 000 . 001 100 3 0 1 4 = (11000.0011)2
7. 十六进制转换为二进制
1 位十六进制 0 1 2 3 4 5 6 7
4 位二进制 0000 0001 0010001
1010
00101
0110
0111
1 位十六进制 8 9 A B C D E F
4 位二进制 1000 1001 1010101
1110
01101
1110
1111
十六进制转换为二进制 : 根据下表将每位十六进制数码展开为 4位二进制数码。
表 4-2 二进制与十六进制转换表
216 )().70( AC
16).70( AC
例: 求
解 : = 0111 0000 1100 . 1010 7 0 C A
= (11100001100.101)2
返回本节
8. 二进制转换为八进制与十六进制
注意到,因而二进制转换为八进制与十六进制有以下简明的转换规则:
•二进制转换为八进制数的转换规则:以小数点为中心,分别向左、向右每
三位分成一组,首尾组不足三位时首尾用“ 0 ” 补足,将每组二进制数根据
表 4-1 转换成一位八进制数码。
•二进制转换为十六进制数的转换规则:以小数点为中心,分别向左、向右
每四位分成一组,首尾组不足四位时首尾用“ 0 ” 补足,将每组二进制数根
据表 4-2 转换成一位十六进制数。
1. 二进制数的算术运算
二进制数的加减乘除算术运算法则与十进制基本相同,唯一的区别在于二进制是
逢“二”进位(或借位)。
加法运算: 0+0=0 ; 1+0=0+1=1 ; 1+1=10 (向高位进 1 )
减法运算: 0-0=1-1=0 ; 1-0=1 ; 0-1=-1 ( 需借位)
乘法运算: 0*0=0*1=1*0=0 ; 1*1=1 。
除法运算: 0/1=0 ; 1/1=1 。( 0 不能作除数)
4.1.2 二进制数的运算
2. 二进制数的逻辑运算
(1) 逻辑数据的表示
二进制的数码只有 0与 1,通常用 1表示真 (Ture),用 0表示假 (False)。
(2) 逻辑运算
逻辑运算的基本运算有:与、或、非。
1) 逻辑与运算规则:
2) 逻辑或运算规则:
3) 逻辑非运算( NOT)是操作对象进行取反操作,逻辑非运算规则:
111,0001001
000,1111001
01,10
(1) 数的长度
计算机中同一类型的数据具有相同的数据长度,与数据的实际长度无关。
(2) 数的符号
用数的最高位 ( 左边第一位 ) 来表示数的正负号,并约定以“ 0” 表示正,以
“ 1” 表示负。
(3) 小数点的表示方法
在计算机中表示数值小数点的位置总是隐含的,即约定小数点的位置。
4.2 数值在计算机中的表示 4.2.1 数值型数据的特点
4.2.2 数的定点表示与浮点表示
符号位 数值部分 .← 小数点位置
0 1 0 1 0 0 1 1
0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1
1.定点数表示方法 ① 定点整数
小数点的位置约定在最低数值位的后面,如下图所示。
例如 , 假设定点整数占 8位 ,则数值 83存放的形式如下 :
② 定点小数
小数点的位置约定在数符位和数值部分的最高位之间。
例如,假设 2个字节,则十进制小数 0.6876定点数表示的形式下:
↑• ← 小数点位置 数值部分数符
阶符( 1位)
阶码 p 数符( 1位)
尾数 d
10000011
11101100
00000000
00000000
2. 浮点数表示方法浮点数的思想来源于数学中的指数表示形式:例如,十进制数
可以表示为
(1) 浮点表示法中的尾数与阶码对于一个 R 进制数,则 。M与 C分别称为浮点数的尾数与阶码。
(2) 浮点数的表示形式任意二进制规格化浮点数表示形式为
其中纯小数 d为尾数,整数 p为阶码, d与 p都带符号。存储形式如下:
例如, 在机内的表示形式如下:
310256.0256
2)1011011( 11121011011.0
CRMN
011211011.0
1. 原码 : 用最高位表示数值的符号,其后各位表示该数值的绝对值的表示法称为原码表示法。其中符号位为 0时表示该数值为正,符号位为 1时表示该数值为负。例: [+1000110] 原 = 01000110, [-1000110] 原 = 11000110
2. 反码 : 对于正数,反码与原码相同;对于负数,反码保持原码的符号位不变,而其他各位取反。
例: [+1000110] 反 = 01000110, [-1000110] 反 = 10111001
3. 补码 : 对于正数,补码与原码相同;对于负数,补码保持原码的符号位不变,而其他各位取反,然后在最低位加上 1。即负数的补码为它的反码加 1。例: [-117] 反 = 10001010,加“ 1”得 [-117] 补 = 10001011
4.2.3 原码、反码与补码
4.3.1 字符的 ASCII 码
在计算机中,字符的编码通常用 ASCII 码“美国标准信息交换码”。
( 1 )每个字符的二进制编码为 7 位,故共含 2^7 = 128 种不同 字符的编码。
( 2 )表内有 33 种控制码,位于表的左首两列和右下角位置上。
( 3 )其余 95 个字符为可打印或可显示字符,包括英文大小写字母共 52 个,
0 ~ 9 的数字共 10 个和 其他标点符号、运算符号等共 33 个。
( 4 )通常一个 ASCII 码占用一个字节 ( 即 8 个 bit) ,其最高位为“ 0” 。
4.3 信息编码
( 1 )汉字国标码 : 为我国颁布的《信息交换用汉字编码字符集 · 基本集》。它共包含 6763 个
常用汉字,以及英、俄、日文字母及其符号共 687 个。
( 2 )汉字机内码 : 注意到 ASCII 码的机内码的最高位为“ 0” ,为与之相区别,将国标码的两
个字节的最高位均改为“ 1” 。
( 3 )汉字输入码 : 最常见的有各种“音码”和“形码”。
( 4 )汉字字形码 : 汉字字形码又称为汉字字模,用于在显示器上或打印机上输出汉字的字形。
( 5 )各种编码的关系
→ 输入码→ 国标码→机内码→地址码→字形码→ 汉字输入 汉字输出
4.3.2 汉字的编码