一个字节二进制数的补码加减运算与溢出判断
- 格式:xls
- 大小:78.50 KB
- 文档页数:2
第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当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。
简答题部分简答题目包含以下几大类内容:一.数制变换,运算,码制等二.微机组成、结构、总线三.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位),也称为汉字的区位码。
因此,字符集中的任何一个图形、符号及汉字都用唯一的区位码表示。
二进制中第一位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章微型计算机基础知识一、选择题3.若用MB作为PC机主存容量的计量单位,1MB等于( )字节。
A、210个字节B、220个字节C、230个字节D、240个字节4.运算器在执行两个用补码表示的整数加法时,判断其是否溢出的规则为( )。
A、两个整数相加,若最高位(符号位)有进位,则一定发生溢出B、两个整数相加,若结果的符号位为0,则一定发生溢出C、两个整数相加,若结果的符号位为1,则一定发生溢出D、两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出5.运算器的主要功能是( )。
A、算术运算B、逻辑运算C、算术运算与逻辑运算D、函数运算6.运算器由很多部件组成,其核心部分是( )。
A、数据总线B、算术逻辑单元C、累加器D、多路开关7.在一般的微处理器中,( )包含在CPU中。
A、内存B、输入/输出单元C、磁盘驱动器D、算术逻辑单元9.若某数据段位于存储区38000H~47FFFH,则该数据段的段基址为()。
A、38000HB、47FFFHC、3000HD、3800H10.程序设计中所使用的地址是()。
A、逻辑地址B、有效地址C、物理地址D、段基址11.80X86执行程序时,对存储器进行访问时,物理地址可由()组合产生。
A、SS和IPB、CS和IPC、DS和IPD、CS和BP12.某处理器与内存进行数据交换的外部数据总线为32位,它属于()。
A、8位处理器B、16位处理器C、32位处理器D、64位处理器13.在堆栈操作中,隐含使用的通用寄存器是()。
A、AXB、BXC、SID、SP14.主要决定微机性能的是()A、CPUB、耗电量C、质量D、价格15.十进制负数–38的八位二进制补码是()A、01011011BB、11011010BC、11011011BD、01011010B 16.若某台微型计算机的型号是奔四800,则其中800的含义是()A、CPU中有800个寄存器B、CPU中有800个运算器C、该微机的内存为800MBD、时钟频率为800MHZ17.在计算机内部,一切信息的存取,处理和传送都是以()形式进行。