计算机系统基础知识 - 图文 联系客服

发布时间 : 星期日 文章计算机系统基础知识 - 图文更新完毕开始阅读373f26d376eeaeaad1f330c6

第1章 计算机系统基础知识

补码运算的优点:将减法运算变成加法运算(因为运算器中只有加法器)。

例如:96-20=76

0110 0000 ←[+96]补 + 1110 1100 ←[-20]补

1 0100 1100 →76 最高位的进位 1则自然丢失

4) 移码

规则:最高位为符号位,“1”表示正数,“0”表示负数。 当-2n ≤ x < 2n 时,[x]移 = 2n+x。 数值范围:-2n ≤ x ≤2n – 1。

特点:保持了数据原有的大小顺序,便于进行比较操作。

以上介绍的4种编码方法(设字长为4位,最高位为符号位)的对应关系如表1-2所示。

表1-2 符号数的四种编码表示

x0x1x2x3 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 原 码 0 +1 +2 +3 +4 +5 +6 +7 -0 -1 -2 -3 -4 -5 -6 -7 反 码 0 +1 +2 +3 +4 +5 +6 +7 -7 -6 -5 -4 -3 -2 -1 -0 补 码 0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1 移 码 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 4. 定点数和浮点数

1111 1) 定点数

(1) 定点小数表示。

小数点设在符号位(S)之后,其表示格式如下所示。

S 设字长为n+1位,定点小数的数值表示范围如下。

-n-n

? 原码表示:-(1-2)~+(1-2)。

-n-n

? 反码表示:-(1-2)~+(1-2)。

9

程序员考试同步辅导(上午科目)(第2版)

补码表示:-1~+(1-2n)。

例如,(-0.25)10→(-0.01)2,以原码定义表示为10100000。 (2) 定点整数表示。

定点整数分为(有)符号数和无符号数两种表示格式。

? (有)符号数:小数点在符号位最末有效位之后。其表示格式如下。

?

-

S 设字长为n+1位,符号数的数值表示范围如下。

? 原码表示:-(2-n-1)~+(2-n-1)。 ? 反码表示:-(2-n-1)~+(2-n-1)。 ? 补码表示:-2-n ~+(2-n-1)。

例如,(-10)10→(-1010)2,以原码定义表示为10001010。

? 无符号数:不设符号位,小数点在符号位最末有效位之后。其表示格式如

下。

n+1

设字长为n+1位,符号数的数值表示范围为0≤N≤2-1。 例如,(255)10→(11111111)2,以原码定义表示为11111111。 2) 浮点数

? 构成:阶码E,尾数M,符号位S,基数R。 N = (-1)S×M×RE

?

S E M ?

规格化:为了在尾数中表示最多的有效数据位,也为了数据表示的唯一性而定义的规则。如将尾数的绝对值限制在区间[0.5, 1]中,当尾数(M)用补码表示时,有以下两种情况。

? M≥0时,尾数规格化的形式:M=0.1X…X。 ? M<0时,尾数规格化的形式:M=1.0X…X。

浮点数的表示范围:尾数的位数决定数的精度,阶码的位数决定数的范围。而表 示范围与机器的具体的表示方法及字长有关,下面举例说明。

例:以R为基数,有p位阶码和m位二进制尾数代码的浮点数,阶码采用二进制正整数编码表示,求数值的表示范围。 解:最小规格化尾数:1/R

-最大规格化尾数:1-2m

p

最大阶码:2-1 最小阶码:0 最小值:1/R

最大值:R2?1(1?2?m)

注:本例中没有符号位,也没有考虑阶码为负的情况。如果考虑这些因素就要考

p10

第1章 计算机系统基础知识

虑阶码和尾数的编码方式。

? 浮点数的溢出:当运算的结果超出该机器浮点数可表示的范围时,则产生浮点数

溢出,浮点数可表示的范围如图1-5所示。比如上例中,当浮点数的运算结果小于

1/R(或大于R2?1(1?2?m))时,则产生正下溢(或正上溢)。

p

图1-5 浮点数的表示范围

?

浮点数的实例。设浮点数格式如下:

阶符 阶码 数符 尾数 0 11

则数110.011(B)=+0.110011×2+11(规格化尾数)=0 110011×2为:

0 11 0 110011 (机器数格式)可表示

3) 浮点数工业标准IEEE 754 规格化数格式如下:

(-1)s×1.f×2E

其中,1位数符(s):正数为0,负数为1;除去了最高位的尾数( f )为原码表示;阶码(E)为特殊移码表示。

IEEE 754浮点数的范围如表1-3所示。

表1-3 IEEE 754浮点数的表示范围

格 式 单精度 双精度 最 小 值 E=-126, f =0, 1.0×2126 -最 大 值 E=127,f=11?1, 1.11?1×2127 = 2127×(2-223) -- 例:将IEEE 754标准的精度浮点数0 10000110 01100000001000000000000转换为真值。 解:将特殊移码表示阶码转换为真值阶码,因为E=10000110-01111111=00000111,所以E=7;因为f =01100000001000000000000,所以1.f=1.01100000001;将1.f右移7位(因为E=7)=(10110000.0001)2=176.0625。

5. 十进制数与字符的编码表示

数值、文字和英文字母等字符在进入计算机时,都必须转换成二进制表示形式,称为字符编码。

用4位二进制代码表示1位十进制数,称为十进制编码,简称BCD编码。常用的十进制数的编码有8421 BCD码、余3码、格雷码。

上述三种编码与十进制数的对应关系如表1-4所示。

E=-1022, f =0, 1.0×21022 E=1023,f=11?1, 1.11?1×21023 =21023×(2-252) -

11

程序员考试同步辅导(上午科目)(第2版)

表1-4 常用编码与十进制数的对应关系

十进制数 0 1 2 3 4 5 6 7 8 BCD码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 格雷码 0000 0001 0011 0010 0110 1110 1010 1000 1100 0100 余3码 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 6. ASCII码

9 ASCII码(American Standard Code for Information Interchange)是美国标准信息交换码的简称,该编码已成为国际通用的信息交换标准代码。

ASCII码采用7个二进制位对字符进行编码,其格式为每1个字符有1个编码。每个字符占用1个字节,用低7位编码,最高位为0。其共有128个编码,编码从0~127,如表1-5所示,其中H表示高3位,L表示低4位。

表1-5 ASCII码表

H L 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

000 NUL SOH STX ETX EOT ENG ACK BEL BS HT LF VT FF CR SO SI 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 SP ! \# $ % & ' ( ) * + , - . / 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \\ ] ? ? 110 ` a b c d e f g h i j k l m n o 111 p q r s t u v w x y z { | } ~ DEL 12