一个字节二进制数的补码加减运算与溢出判断

合集下载

《计算机原理》练习题和答案

《计算机原理》练习题和答案

发短 消息 加为好 友


当前离 线 个人博 客
和反码时所对应的十进制真值分别是 -127 、 -1 、 -0 。 18 、 在二进制浮点数表示方法中, 阶码的位数越多则数的表示范围越大, 尾数的位数越多则数的精度越高。 19 、对于定点整数, 8 位原码(含 1 位符号位)可表示的最小整数为 -127 ,最大整数为 127 。 20 、采用 BCD 码, 1 位十进制数要用 4 位二进制数表示, 1 个字 节可存放 2 个 BCD 码。 21 、对于定点小数, 8 位补码可表示的最小的数为 -1 ,最大的数为 1-27 。 22 、在原码、补码、反码中,补码的表示范围最大。 23 、浮点运算时,若运算结果尾数的最高位不为 1 时需要规格化处理, 此方法称为规格化。 24 、西文字符通常采用 ASCII 编码,这种编码用 7 位二进制数表示。 25 、在 1 个字节中存放两个十进制数的编码方式称为二—十进制码, 简称 BCD 码 。 26 、浮点运算中的对阶操作采用尾数右移几位,加上几个阶码来实现, 此方法称为对阶。 27 、浮点运算结果规格化时,尾数左移解决尾数值小于 0.5 的 问题, 右移解决尾数值大于或等于 1 的 问题。 28 、逻辑操作是对数据进行按位的逻辑与、逻辑或、逻辑非和逻辑异或 等操作。 29 、补码表示的二进制浮点数,阶码为 6 位,尾数为 10 位,均包含 符号位,它能表示的最小二进制数为 - ( 29-1 ) *231 ,最大二进制数 为( 29-1 ) *231 。 30 、浮点数乘法的运算方法是阶码相加,尾数相乘;除法的运算方法是 阶码相减,尾数相除。 31 、大部分计算机在处理数值数据时均采用浮点数,这种计算机称为浮 点机。 32 、在计算机中用相同的字长表示二进制数,浮点数表示的范围比定点 数的大。 33 、数据可分为非数值型数据和数值型数据两种。其中数值型数据又称 符号数据,它又可分为定点数据和浮点数据。 34 、 36D 的 8421 码为 00110110B 。字符串“ 36 ”的 ASCII 码为 0011001100110110B 。 35 、逻辑运算的特点是只在对应的两个二进制位上进行,与相邻的高低 位之间不发生关系,不存在进位、借位等。

微机原理与接口习题汇总

微机原理与接口习题汇总

第1章微型计算机基础一、单选题1.以下哪个数最大( D )。

A、10110101BB、234C、234QD、123H2.以下哪个数最大()。

A、10111101BB、240C、134QD、F3H3.以下哪个数最大()。

A、101101BB、198C、162QD、ABH4.以下哪个数最大()。

A、1101101BB、200C、373QD、1D7H5.下列各数种,最大的是( A )。

A、(321)16B、(327)8C、(659)10D、(11100111)26.字母A的ASCII代码是( B )。

A、39HB、41HC、0DHD、0AH7.字母a的ASCII代码是( B )。

A、60HB、61HC、40HD、41H8.回车符的ASCII代码是( C )。

A、39HB、41HC、0DHD、0AH9.换行符的ASCII代码是(D)。

A、39HB、41HC、0DHD、0AH10.数字9的ASCII代码是( A )。

A、39HB、41HC、0DHD、0AH11.数字0的ASCII代码是( B )。

A、30B、30HC、0D、0H12.在计算机系统中,微处理器通常不包含( C )。

A、算术逻辑单元B、程序计数器C、大容量内存D、寄存器13.下列各数不属于8421BCD码的是( A )。

A、10100101BB、01011001BC、00110011BD、01010100B14.以下关于字节和字长的说法错误的是( D )。

A、一个字节由8位二进制位组成B、字长是计算机内部一次可以处理的二进制的位数C、字长依赖于具体的机器,而字节不依赖于具体的机器D、字长越长,处理精度越高,但处理速度越慢15.假定字长为n位,以下关于数的定点和浮点表示的说法错误的是( D )。

A、定点表示法是指计算机中所有数的小数点的位置是人为约定不变。

B、浮点数比相同位数的定点数表示的数值范围大。

C、定点整数的表示范围为-(2n-1-1)~(2n-1-1)。

原码-反码-补码及运算

原码-反码-补码及运算

原码,反码,补码及运算一、定义1.原码正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。

用这样的表示方法得到的就是数的原码。

【例2.13】当机器字长为8位二进制数时:X=+1011011 [X]原码=01011011Y=-1011011 [Y]原码=11011011[+1]原码=00000001 [-1]原码=10000001[+127]原码=01111111 [-127]原码=11111111原码表示的整数范围是:-(2n-1-1)~+(2n-1-1),其中n为机器字长。

则:8位二进制原码表示的整数范围是-127~+12716位二进制原码表示的整数范围是-32767~+327672.反码对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。

【例2.14】当机器字长为8位二进制数时:X=+1011011 [X]原码=01011011 [X]反码=01011011Y=-1011011 [Y]原码=11011011 [Y]反码=10100100[+1]反码=00000001 [-1]反码=11111110[+127]反码=01111111 [-127]反码=10000000负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。

反码表示的整数范围与原码相同。

3.补码正数的补码与其原码相同,负数的补码为其反码在最低位加1。

引入补码以后,计算机中的加减运算都可以统一化为补码的加法运算,其符号位也参与运算。

【例2.15】(1)X=+1011011 (2)Y=-1011011(1)根据定义有:[X]原码=01011011 [X]补码=01011011(2)根据定义有:[Y]原码=11011011 [Y]反码=10100100[Y]补码=10100101补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。

则:8位二进制补码表示的整数范围是-128~+127(-128 表示为10000000,无对应的原码和反码)16位二进制补码表示的整数范围是-32768~+32767当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。

2.简答

2.简答

简答题部分简答题目包含以下几大类内容:一.数制变换,运算,码制等二.微机组成、结构、总线三.8086/8088CPU的内部结构、大小模式构成和总线周期四.指令系统和汇编语言程序设计五.存储器组成、分类、性能、特点六.接口技术与中断技术一、数制变换,运算,码制、补码运算、溢出判断等A类:1.溢出与进位不同点?答:进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号的范围。

溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。

2.什么是组合的BCD码?什么是非组合的BCD码?答:组合的BCD码是用一个字节表示2位BCD码。

非组合的BCD码一个字节仅在低四位表示1位BCD码。

3.简述十进制数转换为二进制数的方法。

4.简述十六进制数转换为十进制数的方法。

5.在计算机中,如何表示正、负号。

答:数的最高位为符号位,并且用“0”表示正;用“1”表示负。

6.计算机中机器数有哪些常用的编码形式。

答:常用的编码有原码、反码和补码。

B类:1.原码、反码和补码是怎样定义的。

答:原码的定义:一个数的原码其尾数就是该数的真值,其最高位用来表示符号,“+”和“-”分别用“0”和“1”来表示。

反码的定义:对于正数它的反码等于原码,对于负数它的反码等于它的原码除符号位外,其余各位取反。

补码的定义:对于正数它的补码等于原码,对于负数它的补码等于它的原码除符号位外,其余各位取反后加一。

2.在计算机中,BCD码的加减运算是按什么规则进行调整的。

C类:1.简述汉字的编码规则。

答:GB2312国标字符集呈二维表,分成94行×94列,行号称为区号,列号称为位号。

每一个汉字或符号在码表中都有各自一个惟一的位置编码,该编码就是字符所在的区号(行号)及位号(列号)的二进制代码(7位区号在左、7位位号在右,共14位),也称为汉字的区位码。

因此,字符集中的任何一个图形、符号及汉字都用唯一的区位码表示。

计算机中的数制

计算机中的数制
数 值 十进制数
4
0
2
2
1
1
0.5
0
0.25
0.25
0.125
.0625
0.125 .0625
16 + 8 + 0 + 2 + 1 + 0 + .25 + .125 + .0625 = 27.4375
数 制 的 转 换
例4: 将下面给出的二进制数转换成十六进制的数
二进制数 十六进制数
0010 2 0000 0 0101 5 1010 A 0111 7 1110 E 0100 4
[例]:
[X]原=1 0110100
[X]反=1 1001011
[+0]反=00000000 [-0]反 =11111111 即:数0的反码也不唯一
补码
定义:
若X>0, 则[X]补= [X]反= [X]原 若X<0, 则[X]补= [X]反+1 [例]: X= –52= – 0110100
[X]原=10110100
1.2
计算机中的数制
数制 是人们利用符号来计数的科学方法。数制可以 有很多种,但在计算机的设计和使用上常用的 则为十进制、二机制、八进制和十六进制。 数制的基和位权 数制所使用的数码的个数称为基,数制中每一 固定位置对应的单位值称为“位权”
十进制: 基为“10”,权为以10为底的幂, —D 二进制: 基为“2”,权为以2为底的幂, —B 八进制: 基为“8”,权为以8为底的幂, —O 十六进制:基为“16”,权为以16为底的幂 —H
ASCII码

ASCII码是目前微机中普遍采用的字符编码系统。 字符的编码,一般用7位二进制码表示128个字符和 符号。在需要时可在D7位加校验位。 0~9的ASCII码:30H~39H;

二进制中正负数表示和判断

二进制中正负数表示和判断

二进制中第一位0代表正;1代表负我知道,但是给你一个二进制的数比如101那么转化成十进制应该是多少 5 但不是说首位为1应该是负的吗?谁能给我讲讲这个首位什么时候作为符号,什么时候作为数字去计算什么时候可以直接计算,什么时候需要取反我怎么知道它是正数还是负数如果你有这种疑问,那就是没有高清概念有问题,我们只有在说计算机处理数时,会用0和1代表正负,这种数称之为机器数(包括原码,反码,补码);一:表示法:1、正数5的表示法假设有一个int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

2、负数-5的表示法现在想知道,-5在计算机中如何表示在计算机中,负数以原码的补码形式表达。

二、概念:1、原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

比如00000000 00000000 00000000 00000101 是5的原码。

00000000 00000000 00000101 是-5的原码。

备注:比如byte类型,用2^8来表示无符号整数的话,是0 - 255了;如果有符号,最高位表示符号位,0为正,1为负,那么,正常的理解就是-127 至+127 了.这就是原码了,值得一提的是,原码的弱点,有2个0,即+0和-0(和00000000);还有就是,进行异号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作,最后运算结果的符号还要与大的符号相同;于是,反码产生了。

2、反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反[每一位取反(除符号位)]。

取反操作指:原为1,得0;原为0,得1。

(1变0; 0变1)比如:正数00000000 00000000 00000000 00000101其反码还是00000000 00000000 00000000 00000101负数00000000 00000000 00000101其反码则是。

二进制溢出——精选推荐

二进制溢出——精选推荐

⼆进制溢出⼀、溢出的本质溢出的本质是计算机⽆法存放过⼤或者过⼩的数据。

假设⼀个计算机CPU是4位的,那么每⼀位或者为0,或者为1,根据排列组合,这四位最多共有2*2*2*2=16种可能的组合⽅式,也就是说这台计算机只能最多表⽰16个数字。

以计算机中的⽆符号整数为例,那么4位CPU的计算机表⽰出来的就只有0~15这16个数字。

如果你拿两个数,⼀个为11,另⼀个为5,做加法的话,计算结果会显⽰为0⽽不是16。

因为11加4已经等于15了,再加1它已经⽆法表⽰,所以⼜回到了0处,这种情况就属于上溢。

反之,2-3的话,得到的结果为15,因为2-2已经为0,再减的话就转回到了15,这属于下溢。

总之⼀句话,溢出反应了计算机处理能⼒的上限和下限,太⼤的数和太⼩的数均⽆法直接呈现出来。

⼆、探讨有符号数与⽆符号数上溢出下溢出的问题1,有符号数的溢出#include<void.h>Void main(){int i= 2147483647;printf(“%d,%d”,i.i+1);}输出结果为:2147483647,-2147483648这是因为加减运算过后,它们的值超出了它们对应的那种整数类型的表⽰范围,我们把这种现象称为溢出。

注意:看清楚数字总是在循环的变化。

如从最⼤2147483647,再加⼀后就变成了最⼩-2147483648。

即循环的顺序是:0— 2147483647— -2147483648— 0。

规律:SHRT_MAX+1 == SHRT_MINSHRT_MIN-1 == SHRT_MAX例如:#include <stdio.h>int main (){short int a=32767,b=32767,c;a=a+b; //实现两数不借助第三变量交换的功能printf("a=%d,b=%d\n",a,b);b=a-b;printf("a=%d,b=%d\n",a,b);a=a-b;printf("a=%d,b=%d\n",a,b);c=sizeof(short int);printf("sizeof=%d",c);return0;}结果:a=-2,b=32767 因为:32767+1=-32768 -32768+32766=-2a=-2,b=32767 因为:-2-32766 =-32768 -32768-1=32767,反正都是在[-32768,32767]之间循环a=32767,b=32767sizeof=2因此,下⾯的程序就是错误的,while是个⽆限循环:short int n=1, sum=0;while(sum<=32767) {sum+=n; n++;}printf(“n=%d\n”,n-1);另外google的⼀道笔试题中也需要意识到溢出的存在:short cal(short x){if(x==0) return0;elsereturn x+cal(x-1);}答案x=0时,0x>0时,x+(x-1)+(x-2)+…+1+0x<0时,x+(x-1)+…+(-32768)+【溢出】+32767+32766……+1+0,中途栈溢出,计算此表达式最后的结果时,也会多次溢出,因此最后的结果⼈⼒很难算出。

计算机组成原理名词解释

计算机组成原理名词解释

计算机组成原理名词解释IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】一、名词解释:(第一章的名称解释是考试的重点)1.主机:由CPU、存储器与I/O接口合在一起构成的处理系统称为主机。

:中央处理器,是计算机的核心部件,由运算器和控制器构成。

3.运算器:计算机中完成运算功能的部件,由ALU和寄存器构成。

:算术逻辑运算单元,负责执行各种算术运算和逻辑运算。

5.外围设备:计算机的输入输出设备,包括输入设备,输出设备和外存储设备。

6.数据:编码形式的各种信息,在计算机中作为程序的操作对象。

7.指令:是一种经过编码的操作命令,它指定需要进行的操作,支配计算机中的信息传递以及主机与输入输出设备之间的信息传递,是构成计算机软件的基本元素。

8.透明:在计算机中,从某个角度看不到的特性称该特性是透明的。

9.位:计算机中的一个二进制数据代码,计算机中数据的最小表示单位。

10.字:数据运算和存储的单位,其位数取决于具体的计算机。

11.字节:衡量数据量以及存储容量的基本单位。

1字节等于8位二进制信息。

12.字长:一个数据字中包含的位数,反应了计算机并行计算的能力。

一般为8位、16位、32位或64位。

13.地址:给主存器中不同的存储位置指定的一个二进制编号。

14.存储器:计算机中存储程序和数据的部件,分为内存和外存。

15.总线:计算机中连接功能单元的公共线路,是一束信号线的集合,包括数据总线。

地址总线和控制总线。

16.硬件:由物理元器件构成的系统,计算机硬件是一个能够执行指令的设备。

17.软件:由程序构成的系统,分为系统软件和应用软件。

18.兼容:计算机部件的通用性。

19.软件兼容:一个计算机系统上的软件能在另一个计算机系统上运行,并得到相同的结果,则称这两个计算机系统是软件兼容的。

20.程序:完成某种功能的指令序列。

21.寄存器:是运算器中若干个临时存放数据的部件,由触发器构成,用于存储最频繁使用的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档