题1:二进制数1000 0000B(带符号机器数)分别作原码,反码和补码看,其真值分别是______, ______和_________
题2:二进制数1000 0001B(带符号机器数)分别作原码,反码和补码看,其真值分别是______, ______和_________
定点数
1 定点数的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示
1.1 无符号数的表示
1.2 带符号数的表示
(1) 定点整数
(2) 定点小数
(3) 原码表示
(4) 补码表示
(5) 反码表示
(6) 移码
定点数与浮点数的比较 定点数
1 定点数的表示
1.1 无符号数的表示
1.2 带符号数的表示
(1) 定点整数
(2) 定点小数
(3) 原码表示
(4) 补码表示
(5) 反码表示(6) 移码定点数与浮点数的比较
原码乘法
[编辑本段]定点数
【dìng diǎn shù 】
计算机中采用的一种数的表示方法。参与运算的数的小数点位置固定不变。
[编辑本段]1 定点数的表示
[编辑本段]1.1 无符号数的表示
指整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。若机器字长为n+1为,则数值表示为:
X=X0X1X2...Xn 其中Xi={0,1}, 0<=i<=n 即X0*2^n + X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn
数值范围是 0≤X≤2^(n+1) - 1
例如:1111表示15。
[编辑本段]1.2 带符号数的表示
最高位被用来表示符号位,而不再表示数值位。
例如:1111 是 -7
[编辑本段](1) 定点整数
小数点位固定在最后一位之后称为定点整数。若机器字长为n+1为,数值表示为:
X=X0X1X2...Xn,其中Xi={0,1},0≤i≤n 即(-1)^X0 * (X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn)
数值范围是 -(2^n-1)≤0≤2^n-1
例如:1111表示-7。
[编辑本段](2) 定点小数
小数点固定在最高位之后称为定点小数。若机器字长为n+1为,数值表示为:
X=X0.X1X2...Xn,其中Xi={0,1},0≤i≤n (这里X0不表示数字,只表示符号,若X0=0,则代表X=0.X1X2...Xn,X0=1,则代表-0.X1X2...Xn)。
即 (-1)^X0 * (X1*2^(-1)) + X2*2^(-2) + ... + Xn-1*2^(-n+1) + Xn*2^(-n)
数值范围是 -(1-2^(-n))≤X≤1-2^(-n)
例如:1111表示-0.875
(定点小数也被用在浮点数的尾数(Mantissa)部分)
[编辑本段](3) 原码表示
原码是用机器数的最高一位代表符号,以下给位给出数值绝对值的表示方法。其定义为:
整数:
[X]原=X (0≤ x<2^n)
[X]原=2^n-X (-2^n
011111,其实正好相反。如果我们对每个真值加上一个2^n,X=11111加上2^5可得11111+100000=111111;X=-11111加上2^5可得-11111+100000=000001,这样就可以直接通过二进制代码比较大小。
移码的性质:
1. 最高位为符号位。
2. 0有唯一编码。
3. 保持了数据原有的大小顺序。
4. 移码只用于浮点数的阶码部分,故只用于表示整数。
[编辑本段]定点数与浮点数的比较
数值的表示范围 :浮点表示法所能表示的数值范围将远远大于定点表示法 。
精度 :对于字长相同的定点数与浮点数来说,浮点数虽然扩大了数的表示范围,但这是以降低精度为代价的,也就是数轴上各点的排列更稀疏了 。
数的运算 :浮点运算要比定点运算复杂 。
溢出处理 :定点运算时,当运算结果超出数的表示范围,就发生溢出;而在浮点运算时,运算结果超出尾数的表示范围却并不一定溢出,只有当阶码也超出所能表示的范围时,才发生溢出
1.1.2 汇编语言的特点
1.执行速度快
2.程序短小
3.可以直接控制硬件
4.可以方便地编译
5.辅助计算机工作者掌握计算机体系结构
1.2进位计数制及其转换
计算机内部的信息分为两大类:
1.控制信息:控制信息是一系列的控制命令,用于指挥计算机如何操作;
2.数据信息:数据信息是计算机操作的对象,它可分为数值数据和非数值数据
(1)数值数据用于表示数量的大小,它有确定的数值;
(2)非数值数据没有确定的数值,它主要包括字符、汉字、逻辑数据等等。
信息在输入计算机内部时,都必须用基2码编码表示,其原因如下:
1. 基2码在物理上最容易实现。
2.基2码用来表示二进制数,其编码、加减运算规则简单。
3.基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。
1.2.1数与数制
1.2.2不同数制之间的转换
1. 十进制数与二进制数之间的转换
(1)十进制整数转换成二进制整数
方法:除2取余法
注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。
即A5=1
即A6=1;
结束
最后结果为(97)10 =(A6 A5 A4 A3 A2 A1 A0)2=(1100001)2
(2)十进制小数转换成二进制小数
方法:乘2取整法
注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对应二进制小数。
(3)一般的十进制数转换成二进制数
为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。例如:
(4)二进制数转换十进制数
方法:按位权展开后相加。
2. 十进制与八进制之间的转换
(1)十进制整数转换成八进制整数
方法:除8取余法
(2)十进制小数转换成八进制小数
方法:乘8取整法
3. 十进制与十六进制之间的转换
(1)十进制整数转换成十六进制整数
方法:除16取余法
(2)十进制小数转换成十六进制小数
方法:乘16取整法
(3)十六进制数转换十进制数
方法:按位权展开后相加
4. 二进制与八进制、十六进制数之间的转换
因为: 23=8,所以每三位二进制数对应一位八进制数;
24=16,所以每四位二进制数对应一位十六进制。
表1-1列出了十进制、二进制、八进制、十六进制最基本的数字的对应关系。这些对应关系在后面的二进制、八进制、十六进制相互转换中要经常用到。
在计算机里,通常用数字后面跟一个英文字母来表示该数的数制。
(1)十进制数一般用D(DECIMAL)、
(2)二进制数用B(BINARY)、
(3)八进制数用O(OCTAL)、
(4)十六进制数用H(HEXADECIMAL)来表示。
1.3计算机中数与字符的表示方法
1.3.1 数值数据的编码及其运算
1. 二进制数的编码及运算
两个概念:
机器数:带符号的二进制数值数据在计算机内部的编码。
真值:机器数所代表的实际值。
(1)二进制数补码编码
要注意以下两个问题:
① 在补码表示法中,0只有一种表示,即000…000。
② 对于10000000这个补码编码,其真值被定义为-128。
注意:汇编语言中,为了区别指令码和名称,规定A~F开始的数据前面加零。
补码数要扩展时,正数是在符号的前面补0,负数是在符号的前面补1。
已知补码求真值的方法是:当机器数的最高位(符号位)为0时,表示真值是正数,其值等于其余n-1位的值;当机器数的最高位(符号位)为1时,表示真值是负数,其值等于其余n-1位按位取反末位加1的值。
我们来讨论一下补码表示数的范围。
表1-2 8位二进制补码数范围
补码编码(机器数)
十进制数(真值)
0 1111111
+127
0 1111110
+126
┇
┇
0 0000010
+2
0 0000001
+1
0 0000000
0
1 1111111
-1
1 1111110
-2
┇
┇
1 0000010
-126
1 0000001
-127
1 0000000
-128
当n=16时,N的数据取值范围是: -32768≤ N ≤+32767
(2)二进制数补码的运算
补码的运算规则:
[X+Y]补 = [X]补 + [Y]补
[X-Y]补 = [X]补 + [-Y]补
计算机引入了补码编码后,带来了以下几个优点:
??????????减法转化成了加法:这样大大简化了运算器硬件电路的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,加减法可用同一硬件电路进行处理。
??????????运算时,符号位与数值位同等对待,都按二进制参加运算;符号位产生的进位丢掉不管,其结果是正确的。这大大简化了运算规则。
运用以上两个公式时,要注意两点:
第一点:公式成立有个前提条件,就是运算结果不能超出机器数所能表示的范围,否则运算结果不正确,按“溢出”处理。
第二点:采用补码运算后,结果也是补码,欲得运算结果的真值,还需转换。
2. 无符号整数的编码及运算规则
在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为n位:
则有符号整数的编码可表示为:
符号位 数值位
1位 n-1位
无符号整数的编码可表示为:
数值位 n位
无符号整数的表数范围为:0≤N≤2n-1
3. 十进制数的编码及运算
(1)BCD码
表1-3 BCD码表
十进制数码<><><><><><>
0<><><><><><>
1<><><><><><>
2<><><><><><>
3<><><><><><>
4<><><><><><>
5<><><><><><>
6<><><><><><>
7<><><><><><>
8<><><><><><>
9<><><><><><>
8421码<><><><><><>
0000<><><><><><>
0001<><><><><><>
0010<><><><><><>
0011<><><><><><>
0100<><><><><><>
0101<><><><><><>
0110<><><><><><>
0111<><><><><><>
1000<><><><><><>
1001<><><><><><>
(2)BCD码的运算规则
(3)BCD码的修正规则
1.3.2非数值数据的二进制编码
1. 字符编码
使用最多、最普遍的是ASCII字符编码,即美国信息交换标准代码(AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE)。
2. 汉字的编码
⑴汉字输入编码
⑵汉字机内码
⑶汉字字形码
3. 逻辑数据的编码
⑴“与”运算(AND)
⑵“或”运算(OR)
⑶ “非”运算(NOT)
⑷“异或”运算(XOR)
逻辑运算关系见表1-5所示。
表1-5 逻辑数运算规则
逻辑与
逻辑或
逻辑非
逻辑异或
备注
0.0 = 0
0+0 = 0
= 0
0⊕0 = 0
0.1 = 0
0+1 = 1
= 1
0⊕1 = 1
1.0 = 0
1+0 = 1
1⊕0 = 1
1.1 = 1
1+1 = 1
1⊕1 = 0
8.参考资料:《IBM-PC汇编语言程序设计》沈美明
机器数与真值
由于计算机只能直接识别和处理用0,1两种状态表示的二进制形式的数据,所以在计算机中无法按人门日常的书写习惯
用正负号加绝对值来表示数值,而与数字一样,需要用二进制代码 0 和 1 来表示 正,负 号.这样,在计算机中表示带符号
的数值数据时,数符和数据均采用0,1进行了代码化.这种采用二进制表示形式的连同数符一起代码化了的数据,在 计算机
中统称为机器数或机器码.而与机器数对应的用正,负符号加绝对值来表示的实际数值称为真值.
机器数可分为无符号数和带符号数两种.无符号数是指计算机字长的所以二进制位均表示数值.带符号数是指机器数分
为符号和数值部分,且均用二进制代码表示.
例 : 设某机器的字长为 8 位,无符号整数在机器中表示形式为:
7 0
-------------