计算机中信息的表示及其运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 计算机中信息的表示及其运算
信息和数字在计算机中如何进行表示、如何进行运算是计算机的一个基本问题,在讲解计算机组成技术之前,需要先了解一下信息在计算机中如何表示。
2.1 进位计数制
一、 进位计数制:
在我们的日常生活中最常用的计数方式是十进制,但在计算机中最常用的计数方式是二进制,这是由于二进制便于用物理元件实现,比如电压的高低,晶体管的导通与截止,磁性的顺向与逆向,电灯的亮与灭。
权:一个数中每个数码的位置规定了该数码所具有的数值,称为权; 基值:数制中数码的个数称为基值,位数的权是基值的幂。
基值为r 的数N 可以表示为:
r m n n d d d d d d N )(10121----=
或 ∑--=--------=
+++++++=1
1
100112
21
1n m
i i
i
m
m n n n n r
d r
d r
d r d r d r
d r
d N
举例
十进制:2
1
123110210310=⨯+⨯+⨯ 二进制:3
2
1
101112021212=⨯+⨯+⨯+⨯
为了区分各种数制,通常在数的末尾加一个字母表示:
十进制:D(Decimal),二进制B(Binary),八进制:O(Octal),十六进制:H(Hexadecimal) 举例
二进制:1011B ,八进制:56O(56Q), 十进制:123D, 十六进制:1FAH 二、 不同计数制之间的转换:
1、 其它进制换成十进制:
1) 按“权”转换法:举例
420210101.011212121221.25B D -=⨯+⨯+⨯+⨯= 2101365.338685838245.375O D -=⨯+⨯+⨯+⨯= 210125A.82165161016816602.5H D -=⨯+⨯+⨯+⨯=
2) 基值反复相乘、相除法:举例
a) 整数部分反复相乘法:举例 b) 小数部分反复相除法:举例
2、 十进制换成其它进制:
1) 整数部分“除基取余法”:举例
1633111B 162044161110
D H
D H
D H ===
331D = 14BH
2) 小数部分“乘基取整法”:举例
0.5625D = 0.1001B,
23.8125D = 10111.1101B
原则:小数点在最上边。
3、 二进制、八进制和十六进制之间的转换:
八进制相当于是三位的二进制,十六进制相当于是四位的二进制。
举例
237O = 010 011 111B = 9FH
A2FH = 1010 0010 1111B = 5057O
12D.7A4H = 0001 0010 1101.0111 1010 0100B = 0455.3644O
2.2 机器内数据及符号的表示方法
计算机中数据的最基本表示方式是二进制表示,用二值器件的两个稳定状态来表示“0”和“1”。
一、机器数:数连同其符号在机器中的表示加以数值化。
特点:
1) 字长有限; 2) 符号数值化;
3) 小数点按约定方式标出。
二、整数的表示
1、 不带符号的整数:
数的表示范围:
4位:0000B – 1111B ,0H – FH ,0D – 15D ;
8位:00000000B – 11111111B ,00H – FFH , 0D – 255D ; 16位:0000H – FFFFH , 0D – 65535D ;
n 位数,0D -- n
(21)- D
举例:用8位二进制表示100:
100D = 64H = 01100100B
2、 带符号的整数:带符号的整数一种最简单的表示方法是由最高为表示数的正负,“0”表示
正,“1”表示负。
此时表示的最大数比无符号时小一半。
4位:-7D – +7D ; 8位:-127D – +127D ;
16位:-32767D – +32767D ;
举例:用8位二进制表示100和-100:
100D = 64H = 01100100B -100D = 11000100B
三、小数的表示
1、 定点表示:定点表示方法只能表示两种数
1) 纯小数:默认小数点在符号位之后,此时所有数字均为小数。
举例: - 0.65234375D = –0.1010111B 表示为11010111B
2) 纯整数:默认小数点在最低位之后,此时所有数字均为整数。
举例: -87D = -57H = –1010111B 表示为11010111B
2、 浮点表示:任何一个数N 都可以用两个带符号的整数表示:
J S N ±⨯±=2
S —称为尾数;S 前的正负号称为尾符; J —称为阶数。
J 前的正负号称为阶符。
举例:可以用16位的浮点数表示000102101011010.0-⨯-= - 0.00101011010
尾数用9位表示,阶值用5位表示,阶符和尾符各1位。
10100.00000000001010110100.1010110102--=-⨯
尾数位数的多少表示数的精度,阶码位数的多少表示机器能够表示数的范围。
4位阶码表示的范围是1515
2~2
-,5位阶码表示的范围是31312~2-
PC 机中常用的浮点表示是IEEE 浮点数标准,分为两种:浮点数和双精度数,浮点数用4个字节32位表示,双精度数用8个字节64位表示。
S 为符号位,“0”为正,“1”位负,阶码进行偏移,浮点加上7FH ,双精度加上3FFH 。
尾数部分规格化,变成ffff ff .1的形式,是最高为总是1,在表示的时候省略整数位1。
举例:178.125的浮点表示
178.125D = 10110010.001B = 111
2
011.01100100+⨯+ B
阶码为:+111B ,偏移阶码为:+111B+7FH = 7H+7Fh = 86H = 10000110B 符号 偏移阶码 尾数的有效位 补零
0 10000110 0110010001 0000000000000 010000110 01100100010000000000000B = 43322000H
“溢出”:如果阶码超出了表示数的范围时称为溢出,当阶码超出机器所能表示的最小数时称为“下溢出”,当成0处理;超出机器能够表示的最大数时,称为“上溢出”,机器停止运行,进入一个出错处理程序进行处理。
举例:下溢出:1000
101
上溢出:0
1
四、整数的原码、补码和反码表示
1、 原码:
前面介绍的有符号的整数的表示方法就是原码表示法,数学可以定义为: 机器字长为n 位,x 为整数:
⎩
⎨⎧≤<-<≤=---02,220,][1
1
1
x x x x x n n n 原 x 为纯小数:
⎩⎨
⎧≤<--<≤=0
1,110,
][x x x x x 原 举例
原码数的表示范围:正数:0 ~ 127,00H ~ 7FH 负数:-127 ~ -0,FFH ~ 80H
原码表示法的缺点:
1) 正负数不能够直接进行加法运算,给运算器的设计和实现带来困难;
8位加法:1001000B + (-1001000B)
2) 存在正0和负0:00000000B 和10000000B 2、 补码:
原码表示虽然比较简单和直观,但是计算机进行加、减运算时比较麻烦,需要首先判断两个数的正负,然后再进行相应的计算,计算结果也需要判断正负,相应的电路比较复杂,因此在计算机中常用的数字表示方法是补码表示。
补码的计算非常简单:
1) 正数的补码是它的本身;
2) 负数的补码为各个位取反加一。
举例
两个补码表示的数进行计算时,可以不管其正负,直接进行加减: 举例: 5+(-10)
B 00000101]5[=补,B 11110110]10[=-补,
补补补]5[111110111111011000000101]10[]5[-==+=-+B B B
补码表述范围:正数:0~127,00H ~ 7FH 负数:-127 ~ -1,81H ~ FFH -128:80H 补码的优点:
1) 可以直接进行加法运算,减法也可以转换位加法运算; 2) +0和-0表示相同;
3) 数的表示范围多一个数。
3、 反码:
反码是在补码的基础上略作修改而成的:
1) 正数的反码是它的本身; 2) 负数的补码为各个位取反。
举例
2.3 信息的编码表示
一、 B CD 码:Binary Coded Decimal
常用的BCD 码也称为8421BCD 码,每个十进制数码用四位的二进制表示。
举例
34D = [34H]BCD
二、 A SCII 码:American Standard Code for Information Interchange
ASCII 码是英文字母、数字和常用符号在计算机中的标准表示方法,采用7位二进制编码,共
三、汉字编码:
现在常用的汉字的编码方式现在主要有三种:国标编码(GB码)、BIG5码和Unicode码。
1、GB码
GB码是我国的国家标准,GB2312-80,编码汉字分为两级,一级常用汉字3755,二级汉字3008,
GB码用两个字节表示一个汉字,第一个字节称为区码,第二字节称为位码,两个字节的最高位均为1。
汉字区位码与机内码的转换公式:机内码= 区位码+ A0A0H
第一个汉字“啊”,区位码:1601,机内码:B0A1H
最后一个汉字“齄”,机内码:8794,机内码:F7FEH
2、BIG-5码
BIG-5码是台湾和香港地区使用的一种汉字编码标准。
BIG-5码也用两个字节表示一个汉字,但只有第一个字节的最高位为1。
共有13053个汉字
第一个字为“一”,内码:A440H
最后一个字“”,内码:FAFEH
3、Unicode码
Unicode码是一种新的信息交换国际标准ISO10646,与GB码和BIG-5码都不兼容。
标准的Unicode码是4个字节,常用的是一种简化方式,由2个字节组成。
包含了世界上的所有文字。
A区:0000H ---- 4DFFH,用于世界上当前的字母文字,音节文字以及符号;
I区:4E00H ---- 9FFFFH,用于中、日、韩的表意文字,又称为CJK码;
O区:A000H ---- DFFFFH,保留区;
R区:E000H ---- FFFFDH,为限制使用区,表示特定的图形文字。
四、奇偶校验码:
校验码是为了检查信息编码在存储和传输过程中是否发生了错误而设置的附加码,其中最简单和最常用的是奇偶校验码。
奇偶校验码包括两种:奇校验和偶校验,奇校验是使整个校验码中“1”的个数为奇数,偶校验是使整个校验码中“1”的个数为偶数。
解决的办法是在原编码前加1位。
举例
表示:10001100B 奇校验:0 10001100 偶校验:1 10001100
2.4 数的运算方法
一、逻辑运算
逻辑运算的特点是按位进行的,每位得出一个独立的结果,对其它位无影响。
1、
国标符号 国际符号
2、
国标符号
国际符号
3、
国标符号 国际符号
4、
国标符号国际符号
二、算术运算
1、补码的加法
2、溢出判断:
1)单符号位溢出判断:
a、两个符号不同的数相加不会产生溢出;
b、两个符号相同的数相加,结果的结果符号相反,则产生溢出。
2)双符号位溢出判断:
双符号位就是在原来的符号位之前加上一个与原符号位相同的位,以两位作符号位。
两个数相加,如果结果的两个符号位不同则产生溢出,否则不产生溢出。