补码定义

补码定义
补码定义

假设字长为8bit

1-1=1+(-1)=0

(00000001)+(10000001)-----原码计算=(10000010)=(-2)

1-2=1+(-2)=-1

(00000001)+(10000010)------原码计算=(10000011)=(-3)

显然结果不正确。

II.因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应。

下面是反码的减法运算: (00000001)+(11111110)----反码计算=(11111111)

=(10000000)

=(-0)有问题

按上面同样的方法计算1-2=-1 (00000001)+(11111101)----反码计算=(11111110)

=(10000001)=(-1)正确

问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的。(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大)。于是就引入了补码概念。

负数的补码

负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的。

在补码中用(-128)代替了(-0),所以补码表示范围为: (-128~0~127)共256个。

注意:(-128)也有相对应的原码和反码, 它的反码是(11111111)原码仍然是(10000000)(-128)

补码的加减运算如下:

下面是补码的运算:

1-1=1+(-1)

=(00000001)补+(11111111)补(反码加一) =(00000000)补=(0) 正确

1-2=1+(-2)

=(00000001)补+(11111110)补

=(11111111)补=(-1) 正确

(-1)=(10000001)原码=(11111110)反码

=((11111110)+1)补码

所以补码的设计目的是:

⑴使符号位能与有效值部分一起参加运算,从而简化运算规则。

⑵使减法运算转换为加法运算,进一步简

化计算机中运算器的线路设计,所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。

一个字节长的无符号数的表示范围:

0~255,有符号数的表示范围:-128~127。应该这样来写:0~127~-128~-1,这才是较好的写法。为什么?因为这个写法的数的顺序与0~255一一对应。由上,我们了解,其实补码不过是用128~255这段范围的数来表示-128~-1这段范围的负数。那么就可以推测出计算补码的公式,就是:256-欲求的负数的绝对值=此负数的补码。

计算机原理作业1key

09-10计算机原理作业1 1、选择题 ⑴相对于原码和反码,补码编码的特点是() A.便于转换B.便于表示负数C.便于加减法运算D.便于乘除法运算 ⑵常用的英文字符编码有() A.内码B.补码C.ASCⅡ码D.BCD码 ⑶在8421码表示的二—十进制数中,代码1001表示( ) A.3 B.6 C.9 D.1 ⑷完整的计算机系统应包括( )。 A.运算器、存储器、控制器 B.外部设备和主机 C.主机和实用程序 D.配套的硬件设备和软件系统 ⑸冯诺依曼机工作的基本特点是()。 A多指令流但数据流B按地址访问按顺序执行C按堆栈操作D存储器按内容选择地址⑹溢出标志OF是反映()。 A.算术运算是否出现进位情况 B.算术运算是否出现借位情况 C.带符号数运算结果是否超过机器能表示的数值范围 D.无符号数运算结果是否超过机器能表示的数值范围 ⑺4位无符号二进制数表示的数的范围是( )。 A.0~9999 B.0~9 C.0~15 D.0~99 ⑻十进制数38的8位二进制补码是() 。 A.0011001B.10100110 C.10011001D.00100110 ⑼十进制数-38的8位二进制补码是() 。 A.01011011B.11011010 C.11011011D.01011010 ⑽有一个8位二进制数的补码是11111101,其相应的十进制真值是()。 A.-3B.-2C.509D.253 ⑾十进制数-75用二进制数10110101表示,其表示方式是() 。 A.原码B.补码C.反码D.ASCII码

⑿已知[X]原=10011010B,[Y]原=11101011B,则[X-Y]补=() 。 A.溢出B.01111011BC.10000101BD.01010001B⒀构成微机的主要部件除CPU、系统总线、I/O接口外,还有() 。 A.CRTB.键盘 C.磁盘D.内存(ROM和RAM) ⒁计算机中常用的BCD码是() 。 A.二进制数B.十六进制数 C.二进制编码的十进制数D.不带符号数的二进制形式 ⒂10001010是()。 A.带符号数B.原码、反码、补码表示的带符号数 C.不带符号数D.BCD码 E.无法确定 (以下问题参考讲义相关内容) 2、填空题 ⑴十六进制数F27H用二进制数可表示为____________。 ⑵8位二进制补码整数能表示的最小数值是____________。 ⑶二进制数1010.1B的十进制数表示为________。 ⑷十制数131.5的八进制数表示为________。 ⑸RISC表示 _____________,CISC表示___________。 ⑹字符12在16位计算机中可以表示为_3132H___________。 ⑺计算机字长是16位的,-32768D的原码是_不存在_;反码是_不存在_;补码是_8000H__。 3、简答题 ⑴已知[X]补=11000000B,[Y]补=01001000B,[Z]补=00110010B。求[-X]补,[-Y]补,[-Z]补;并计算[X-Y]补和[X-Z]补,若有溢出请给以说明。 ⑵什么是字节?什么是计算机的字长? ⑶所谓4位、8位、16位、32位微处理器是按什么划分的? ⑷计算机的硬件和软件各由哪几部分组成?

计算机组成作业老师给的答案

说明高级语言、汇编语言和机器语言的差别及其联系。 答:机器语言由代码“0”、“1”组成,是机器能直接识别的一种语言,也是执行效率最高的一种语言。汇编语言是一种面向机器的一种语言,它用一些特殊的符号表示指令。高级语言是面向用户的语言,接近自然语言,直观、通用,用具体机器无关。 画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要性能指标。 框图和各部件的作用见教材第9页,主要性能指标:机器字长存储容量运算速度见教材17页。指令和数据都存于存储器中,计算机如何区分它们 答:取指令和取数据所处的机器周期不同:取指周期取出的是指令;执行周期取出的是数据。取指令或数据时地址的来源不同:指令地址来源于程序计数器;数据地址来源于地址形成部件。 第四章 某机字长为32位,其存储容量是64KB,按字编址其寻址范围是多少若主存以字节编址,试画出主存字地址和字节地址的分配情况。 答:按字编址其寻址范围是16K。图略,用低位字节的地址表示字地址和用高位字节地址表示字地址均可,只需标识清楚。 一个容量为16K×32位的存储器,其地址线和数据线的总和是多少当选用下列不同规格的存储芯片时,各需要多少片1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位。答:数据线32根,地址线14根,数据线地址线总和46根。选用1K×4位芯片时需要16×8片,选用2K×8位芯片时需要8×4片,选用4K×4位芯片时需要4×8片,选用16K×1位芯片时需要32片,选用4K×8位芯片时需要4×4片,选用8K×8位芯片时需要2×4片。 试比较静态RAM和动态RAM。 答:静态RMA和动态RAM都属于随机存储器,即在程序的执行过程中既可以读出又可以写入信息。但静态RAM靠触发器存储信息,只要电源不掉电,信息就可不丢失;动态RAM靠电容存储电荷原理存储信息,即使电源不掉电,由于电容要放电,信息也会丢失所以需要再生。什么叫刷新为什么要刷新说明刷新有几种方法。 答:动态RMA在2ms内,将所存信息读出再重新写入,这一过程称为刷新,刷新是一行一行进行的,由CPU自动完成。动态RAM靠电容存储电荷原理存储信息,电容上的电荷要放电,为了维持存储的信息,动态RMA在2ms内,需将所存信息读出再重新写入即刷新。刷新方法有三种:集中刷新、分散刷新和异步刷新。 一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为μs。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少 答:见教材86页和87页。 某8位微型计算机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:(1)该机所允许的最大主存空间是多少(2)若每个模块板为32K×8位,共需几个模块板(3)每个模块板内共有几片RAM芯片(4)共有多少片RAM(5)CPU如何选择各模块板 答:(1)地址码为18位的8位机的最大主存空间是256K×8位。(2)共需8个模块板。(3)每个模块板内有16片RAM芯片。(4)共有128片RAM。(5)A0~A11作为4K×4位RAM芯片本身的地址线;A12~A14作为模块板内的片选地址。采用3—8译码器,共8个输出,每个输出选择2片RAM 芯片;A15~A17作为模块板的地址。采用3-8译码器,其每个输出分别选择8个模块板中的某一块。

补码的绝对值 补码的运算

(3).补码的绝对值(称为真值) 【例4】-65的补码是10111111 若直接将10111111转换成十进制,发现结果并不是-65,而是191。事实上,在计算机内,如果是一个二进制数,其最左边的位是1,则 我们可以判定它为负数,并且是用补码表示。若要得到一个负二进制数的绝对值(称为真值),只要各位(包括符号位)取反,再加1,就得到真值。如:二进制值:10111111(-65的补码)各位取反:01000000 加1:01000001(+65的补码) 编辑本段代数加减运算 1、补码加法 [X+Y]补 = [X]补 + [Y]补【例5】X=+0110011,Y=-0101001,求[X+Y]补[X]补=00110011 [Y]补=11010111 [X+Y]补 = [X]补 + [Y]补 = 00110011+11010111=00001010 注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是100001010,而是00001010。 2、补码减法 [X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补其中[-Y]补称为负补,求负补的方法是:所有位(包括符号位)按位取反;然后整个数加1。【例6】1+(-1) [十进制] 1的原码00000001 转换成补码:00000001 -1的原码10000001 转换成补码:11111111 1+(-1)=0 00000001+11111111=00000000 00000000转换成十进制为0 0=0所以运算正确。 3、补码乘法 设被乘数【X】补=X0.X1X2……Xn-1,乘数【Y】补=Y0.Y1Y2……Yn-1, 【X*Y】补=【X】补×【Y】补,即乘数(被乘数)相乘的补码等于补码的相乘。 编辑本段补码的代数解释 任何一个数都可以表示为-a=2^(n-1)-2^(n-1)-a; 这个假设a为正数,那么-a就是负数。而根据二进制转十进制数的方法,我们可以把a表示为: a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2) 这里k0,k1,k2,k(n-2)是1或者0,而 且这里设a的二进制位数为n位,即其模为2^(n-1),而2^(n-1)其二项展开 是:1+2^0+2^1+2^2+……+2^(n-2),而式子:-a=2^(n-1)-2^(n-1)-a中,2^(n-1)-a代入 a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)和2^(n-1)=1+2^0+2^1+2^2+……+2^(n-2) 两式,2^(n-1)-a=(1-k(n-2))*2^(n-2)+(1-k(n-3))*2^(n-3)+…… +(1-k2)*2^2+(1-k1)*2^1+(1-k0)*2^0+1,而这步转化正是取反再加1的规则的代数原理所在。因为这里k0,k1,k2,k3……不是0就是1,所以1-k0,1-k1,1-k2的运算就是二进制下的 取反,而为什么要加1,追溯起来就是2^(n-1)的二项展开式最后还有一项1的缘故。而 -a=2^(n-1)-2^(n-1)-a中,还有-2^(n-1)这项未解释,这项就是补码里首位的1,首位1在

大学计算机2.理解原码,反码和补码

(转)理解原码,反码和补码 相信大家看到这个标题都不屑一顾,因为在任何一本计算机基础知识书的第一章都有他们的解释,但是在书上我们只能找到一些简单的定义,看过之后不久就忘了。 数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚.(摘自<<数学发展史>>有空大家可以看看哦~,很有意思的). 为了能方便的与二进制转换,就使用了十六进制和八进制. 数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了. 假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为 (-127~-0 +0~127)共256个. 有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits ( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)原+ (10000001)原= (10000010)原= ( -2 ) 显然不正确. 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算: ( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10 (00000001) 反+ (11111110)反= (11111111)反= ( -0 ) 有问题. ( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 反+ (11111101)反= (11111110)反= ( -1 ) 正确 问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大). 于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个. 注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下: ( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)补+ (11111111)补= (00000000)补= ( 0 ) 正确 ( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 补+ (11111110) 补= (11111111)补= ( -1 ) 正确 所以补码的设计目的是: ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则. ⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。看了上面这些大家应该对原码、反码、补码有了新的认识了吧!

有关补码的知识及运算规则

1.第一篇 数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚."(摘自<<数学发展史>>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题. 数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为 (-127~-0 +0~127)共256个. ? 有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits ( 1 )?10-? ( 1 )10?=? ( 1 )10?+ ( -1 )10?= ?( 0 )10 (00000001)原?+ (10000001)原?= (10000010)原?= ( -2 )?显然不正确. ? 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算: ?( 1 )10?-? ( 1 )?10=? ( 1 )?10+ ( -1 )?10= ?( 0 )10 ?(00000001)?反+ (11111110)反?=? (11111111)反?=? ( -0 ) ?有问题. ( 1 )10?-? ( 2)10?=? ( 1 )10?+ ( -2 )10?= ?( -1 )10 (00000001)?反+ (11111101)反?=? (11111110)反?=? ( -1 )?正确 问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大). 于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:

原码、反码与补码知识讲解

2.2 原码、反码与补码 在计算机内的数(称之为“机器数”)值有3种表示法:原码、反码和补码。所谓原码就是带正、负号的二进制数,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。由此可见,这三种表示法中,关键是负数的表示方式不一样。 2.2.1 正负数表示、定点数与浮点数 在计算机内,通常把1个二进制数的最高位定义为符号位,用“0”表示正数,“1”表示负数;其余位表示数值。 规定小数点位置固定不变的数称为“定点数”;小数点的位置不固定,可以浮动的数称为“浮点数”。 2.2.2 原码 原码表示法是定点数的一种简单的表示法。用原码表示带符号二进制数时,符号位用0表示正,1表示负;数值位保持不变。原码表示法又称为符号-数值表示法。 1. 小数原码表示法 设有一数为x,则原码表示可记作[x]原(下标表示)。例如,X1= +1010110 ;X2= -1001010 原码表示数的范围与二进制位数有关。设二进制小数X=±0.X1X2…Xm,则小数原码的定义如下: 例如:X=+0.1011时,根据以上公式可得[X]原=0.1011;X=-0.1011时,根据以上公式可得[X]原= 1-(-0.1011)=1.1011=1.1011 当用8位二进制来表示小数原码时,其表示范围为:最大值为0.1111111,其真值约为(0.99)10 ;最小值为1.1111111,其真值约为(-0.99)10。根据定义,小数“0”的原码可以表示成0.0…0或1.0…0。 2. 整数原码表示法 整数原码的定义如下: 例如:X=+1101时,根据以上公式可得[X]原=01101;X=-1101时,根据以上公式可得[X]原=24-(-1101)=10000+1101=11101 当用8位二进制来表示整数原码时,其表示范围为:最大值为01111111,其真值为(127)10 ;最小值为11111111,其真值为(-127)10 。同样,整数“0”的原码也有两种形式,即00…0和10…0。 2.2.3 反码 用反码表示带符号的二进制数时,符号位与原码相同,即用0表示正,用1表示负;数值位与符号位相关,正数反码的数值位和真值的数值位相同;而负数反码的数值位是真值的数值位按位变反。 1. 小数反码表示法 设二进制小数X=±0.x1x2…xm,则其反码定义为: 例如,X=+0.1011时,根据以上公式可得[X]反=0.1011;当X=-0.1011时,根据以上公式可得[X]反=2-2-4+X=10.0000-0.0001-0.1011=1.0100。根据定义,小数“0”的反码有两种表示形式,即0.0…0和1.1…1。 2. 整数反码表示法 设二进制整数X=±Xn-1Xn-2…X0,则其反码定义为: 例如,X=+1001时,根据以上公式可得[X]反= 01001;当X=-1001时,根据以上公式可得[X]反= (25-1)+X= (100000-1)+(-1001)= 11111-1001=10110 同样,整数“0”的反码也有两种形式,即00…0和11…1。

原码、反码、补码计算机中负数的表示

原码:将一个整数,转换成二进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。 反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。如单字节的5的反码为:0000 0101;-5的反码为1111 1010。 补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000 0101;-5的原码为1111 1011。 在计算机中,正数是直接用原码表示的,如单字节5,在计算机中就表示为:0000 0101。负数用补码表示,如单字节-5,在计算机中表示为1111 1011。 这儿就有一个问题,为什么在计算机中,负数用补码表示呢?为什么不直接用原码表示?如单字节-5:1000 0101。 我想从软件上考虑,原因有两个 1、表示范围 拿单字节整数来说,无符号型,其表示范围是[0,255],总共表示了256个数据。有符号型,其表示范围是[-128,127]。 先看无符号,0表示为0000 0000,255表示为1111 1111,刚好满足了要求,可以表示256个数据。 再看有符号的,若是用原码表示,0表示为0000 000。因为咱们有符号,所以应该也有个负0(虽然它还是0):1000 0000。 那我们看看这样还能够满足我们的要求,表示256个数据么? 正数,没问题,127是0111 1111,1是0000 0001,当然其它的应该也没有问题。 负数呢,-1是1000 0001,那么把负号去掉,最大的数是111 1111,也就是127,所以负数中最小能表示的数据是-127。 这样似乎不太对劲,该如何去表示-128?貌似直接用原码无法表示,而我们却有两个0。 如果我们把其中的一个0指定为-128,不行么?这也是一个想法,不过有两个问题:一是它与-127的跨度过大;二是在用硬件进行运算时不方便。 所以,计算机中,负数是采用补码表示。如单字节-1,原码为1000 0001,反码为1111 1110,补码为1111 1111,计算机中的单字节-1就表示为1111 1111。

计算机原理原码反码补码

. 反码原码计算机原理整数的补码, - ,为围示范个字节的表制进表示没有符号位.一解释一:对于整数来讲其二其二,1]。对于整数来讲00000000-11111111,由此可见一个字节的整数表示范围为[0,255=2^8 - : .先来看一下下面几个定义进制表示中存在一个符号位0. 1:在计算机中,负数以其正值的补码形式表达。正数即在符号位补2:原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。3:反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。+1 : 反码4:补码的原码、0计算机储存有符号的整数时,是用该整数的补码进行储存的,由以上可以得到. 。;正数的原码、补码可以特殊理解为相同;负数的补码是它的反码加1补码都是0。范围说[10000000 - 11111111] [0, 2^7 - 1]。负数: 范围正数[00000000 - 01111111] 即=10000000, 01111111,取反-1. 10000000 -1 = 11111111 - 1 = 11111110,取反=00000001 即是明. 因此有一个有符号二进制表示范围是从[-128-127]. 即是-128. 位个字节等于8解释二:大家都知道数据在计算机中都是按字节来储存了,1种个字节能代表2561这两个数,所以根据排列,1(1Byte=8bit),而计算机只能识别0和,比如定义一个字节大小的无符号整数8位排列)和1两种可能,不同的信息,即2^8(0个数,因为,256(0~2^8 -1)这些数,一共是,那么它能表示的是(unsigned char)0~255种不同的信息。别停下,还是一个字节的无符号整数,我256前面说了,一个字节只能表示位二进制8们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用个数每个数25600000000(从理论上来说也可以表示成其他不同的二进制码,只要这表示为表示3表示为00000010,1表示为00000001,2对应的二进制码都不相同就可以了),再假设,111111118位二进制中就表示为最大的数,依次类推,那么最大的那个数255在为00000011而事会发现刚好和我们假设的数是相同的,然后,我们把这些二进制码换算成十进制看看,所以告诉你一个无符号的整数无符号的整数就是按这个原理来储存的,实上,在计算机中,这个数本身就是以这个二而且知道在计算机中,的二进制码,你就可以知道这个数是多少,进制码来储存的。反码和补码只有有符号的整数才有原码、无符号的整数根本就没有原码、反码和补码。最大的其他的类型一概没有。虽然我们也可以用二进制中最小的数去对应最小的负数,的!但是那样不科学,下面来说说科学的方法。还是说一个字节的整数,不过这次是也相对应,个数,因为有符号所以我们就把它表个字节它不管怎么样还是只能表示256有符号的啦,1 用最高位表示符号位,。它在计算机中是怎么储存的呢?可以这样理解,示成范围:-128-127 2^77位用来储存数的绝对值的话,能表示表示正数,如果是1表示负数,剩下的如果是0在计算机中储存为个数。首先定义02^7*2还是256个数的绝对值,再考虑正负两种情况,1依次表示00000001到0111111100000000,对于正数我们依然可以像无符号数那样换算,从。那么这些数对应的二进制码就是这些数的原码。到这里很多人就会想,那负数是不127到,那你发现没有,如果这样的话那么一共就只-127-1到到是从1000000111111111依次表示

计算机组成原理作业讲解1-4章 答案

1.1 概述数字计算机的发展经过了哪几个代?各代的基本特征是什么? 略。 1.2 你学习计算机知识后,准备做哪方面的应用? 略。 1.3 试举一个你所熟悉的计算机应用例子。 略。 1.4 计算机通常有哪些分类方法?你比较了解的有哪些类型的计算机? 略。 1.5 计算机硬件系统的主要指标有哪些? 答:机器字长、存储容量、运算速度、可配置外设等。 答:计算机硬件系统的主要指标有:机器字长、存储容量、运算速度等。 1.6 什么是机器字长?它对计算机性能有哪些影响? 答:指CPU一次能处理的数据位数。它影响着计算机的运算速度,硬件成本、指令系统功能,数据处理精度等。 1.7 什么是存储容量?什么是主存?什么是辅存? 答:存储容量指的是存储器可以存放数据的数量(如字节数)。它包括主存容量和辅存容量。 主存指的是CPU能够通过地址线直接访问的存储器。如内存等。 辅存指的是CPU不能直接访问,必须通过I/O接口和地址变换等方法才能访问的存储器,如硬盘,u盘等。 1.8 根据下列题目的描述,找出最匹配的词或短语,每个词或短语只能使用一次。(1)为个人使用而设计的计算机,通常有图形显示器、键盘和鼠标。 (2)计算机中的核心部件,它执行程序中的指令。它具有加法、测试和控制其他部件的功能。 (3)计算机的一个组成部分,运行态的程序和相关数据置于其中。 (4)处理器中根据程序的指令指示运算器、存储器和I/O设备做什么的部件。 (5)嵌入在其他设备中的计算机,运行设计好的应用程序实现相应功能。 (6)在一个芯片中集成几十万到上百万个晶体管的工艺。 (7)管理计算机中的资源以便程序在其中运行的程序。 (8)将高级语言翻译成机器语言的程序。 (9)将指令从助记符号的形式翻译成二进制码的程序。 (10)计算机硬件与其底层软件的特定连接纽带。 供选择的词或短语: 1、汇编器 2、嵌入式系统 3、中央处理器(CPU) 4、编译器 5、操作系统 6、控制器 7、机器指令 8、台式机或个人计算机 9、主存储器10、VLSI 答:(1)8,(2)3,(3)9,(4)6,(5)2, (6)10,(7)5,(8)4,(9)1,(10)7 计算机系统有哪些部分组成?硬件由哪些构成? 答:计算机系统硬件系统和软件系统组成。 硬件由控制器、存储器、运算器、输入设备和输出设备五大部件构成 1.9 冯·诺伊曼V on Neumann计算机的主要设计思想是什么? 略。 1.10 计算机硬件有哪些部件,各部件的作用是什么?

计算机基础第1次作业

题号:1 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 有这样一个8位编码,如果把它看作原码它代表十进制整数-1,如果把它看作补码它代表十进制整数-127,这个8位编码是( ). A、10000001 B、11111111 C、00000001 D、01111111 学员答案:a 说明: 本题得分:2 题号:2 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 使用8个二进制位来表示整数的编码时,十进制整数-88对应的原码和补码分别是( ). A、11011000和10100111 B、 01011000和10101000 C、 11011001和10100111 D、 11011000和10101000 学员答案:d 说明: 本题得分:2 题号:3 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 用8位补码表示有符号整数时,十进制整数-128的补码用十六进制表示是( ). A、FFH B、80H C、A0H D、7FH 学员答案:b 说明: 本题得分:2 题号:4 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 一个8位补码由3个“1”和5个“0”组成,则可表示的最大整数为(). A、112 B、128 C、14 D、7 学员答案:a 说明: 本题得分:2 题号:5 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 大多数计算机采用ASCII码作为字符编码,ASCII码是指(). A、二进制编码的十进制交换码 B、美国信息交换标准代码 C、国标汉字信息编码 D、统一码 学员答案:b

说明: 本题得分:2 题号:6 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 存储容量为1MB的存储器中能存储的最大数据量是( )字节. A、1048576 B、1000000 C、1024 D、1000 学员答案:a 说明: 本题得分:2 题号:7 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 已知X的补码为10011000,则它的原码是( ). A、01101000 B、 01100111 C、 10011000 D、 11101000 学员答案:d 说明: 本题得分:2 题号:8 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 扩展人类感觉器官功能的信息技术不包括(). A、感知技术 B、识别技术 C、获取技术 D、计算技术 学员答案:d 说明: 本题得分:2 题号:9 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 计算与存储技术扩展了人的( )功能. A、眼耳鼻舌身 B、大脑 C、神经网络 D、手脚 学员答案:b 说明: 本题得分:2 题号:10 题型:单选题(请在以下几个选项中选择唯一正确答案)本题分数:2 以下IC卡中用作电子钱包的是( ). A、身份证 B、考勤卡 C、手机SIM卡 D、校园卡

计算机组成6、9章作业题答案

6.2. 已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值。 (1)X > 1/2;(2)X ≥ 1/8; (3)1/4 ≥ X > 1/16 解:(1)若要X > 1/2,只要a1=1,a2~a6不全为0即可 (a2 or a3 or a4 or a5 or a6 = 1); (2)若要X ≥ 1/8,只要a1~a3不全为0即可 (a1 or a2 or a3 =1),a4~a6可任取0或1; (3)若要1/4 ≥ X > 1/16,只要a1=0,a2可任取0或1; 当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1; 若a3=1,则a4~a6可任取0或1; 当a2=1时,a3~a6可任取0或1。 6.16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。 (1)无符号数; (2)原码表示的定点小数。 (3)补码表示的定点小数。 (4)补码表示的定点整数。 (5)原码表示的定点整数。 (6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出其正数和负数的表示范围。 (7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。 解:(1)无符号整数:0 —— 216 - 1,即:0—— 65535; 无符号小数:0 —— 1 - 2-16,即:0 —— 0.99998; (2)原码定点小数:-1 + 2-15——1 - 2-15,即:-0.99997 —— 0.99997 (3)补码定点小数:- 1——1 - 2-15,即:-1——0.99997 (4)补码定点整数:-215——215 - 1 ,即:-32768——32767 (5)原码定点整数:-215 + 1——215 - 1,即:-32767——32767 (6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时: 最大负数= 1,11 111;1.000 000 001 ,即 -2-9?2-31 最小负数= 0,11 111;1.111 111 111,即 -(1-2-9)?231 则负数表示范围为:-(1-2-9)?231 —— -2-9?2-31 最大正数= 0,11 111;0.111 111 111,即(1-2-9)?231 最小正数= 1,11 111;0.000 000 001,即 2-9?2-31 则正数表示范围为:2-9?2-31 ——(1-2-9)?231 (7)当机器数采用补码规格化形式时,若不考虑隐藏位,则 最大负数=1,00 000;1.011 111 111,即 -2-1?2-32 最小负数=0,11 111;1.000 000 000,即 -1?231 则负数表示范围为:-1?231 —— -2-1?2-32 最大正数=0,11 111;0.111 111 111,即(1-2-9)?231 最小正数=1,00 000;0.100 000 000,即 2-1?2-32

补码运算加减乘除原理

首先我们来看为什么要使用补码运算法: 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了. 于是人们开始探索将符号位参与运算, 并且只保留加法的方法. 首先来看原码: 计算十进制的表达式: 1-1=0 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2 如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数. 为了解决原码做减法的问题, 出现了反码: 计算十进制的表达式: 1-1=0 1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0 发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特 殊的数值上.虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0. 于是补码的出现, 解决了0的符号以及两个编码的问题: 1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原 这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128: 接下来我们来看补码运算原理: 在计算机里,如果我们要计算5-3的值,我们既可以用5减去3,也可以用5 加上13。这是为什么呢? 这就像我们的钟表,它从1点走到12点之后,又回到了1点。我们的计算机 也是,从0走到15之后,再往下走就又回到了0,就像我们转了一个圈一样。 我们从5这个位置往回退3个格,就完成了5-3这个计算。我们也可以从5这 个位置往前走,一直走到15,这时我们走了10个格,然后我们继续往前走, 走到0,然后到1,然后就走到了2。这样,我们往前走了13个格之后,也到 了2这个位置。 所以说,在我们这个计算机中,减3和加13是一样的。而3+13=16,我们说在 模16的系统下,3和13是互补的。 这样,我们计算5-3就可以换成5+13。3的二进制表示为0011,5的二进制表 示为0101。这样,0101-0011就可以表示为0101+(-0011)。 我们在计算机中都是把负数用其补码表示,-0011的补码就是10000-0011(即 16-3,也就是13)。10000-0011=1+1111-0011=1+(1111-0011)=1+1100=1101。

计算机工作原理-原码反码补码

定义 ●原码 正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。 用这样的表示方法得到的就是数的原码。 【例1】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 Y=-1011011 [Y]原码=11011011 [+1]原码=00000001 [-1]原码=10000001 [+127]原码=01111111 [-127]原码=11111111 原码表示的整数范围是: -(2n-1-1)~+(2n-1-1),其中n为机器字长。 则:8位二进制原码表示的整数范围是-127~+127 16位二进制原码表示的整数范围是-32767~+32767 ●反码 对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。 【例2】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 [X]反码=01011011

Y=-1011011 [Y]原码=11011011 [Y]反码=10100100 [+1]反码=00000001 [-1]反码=11111110 [+127]反码=01111111 [-127]反码=10000000 负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。 反码表示的整数范围与原码相同。 补码 正数的补码与其原码相同,负数的补码为其反码在最低位加1。 引入补码以后,计算机中的加减运算都可以统一化为补码的加法运算,其符号 位也参与运算。 【例3】(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,无对应的原码和反码)

原码-反码-补码及运算

原码,反码,补码及运算 一、定义 1.原码 正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。 【例2.13】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 Y=-1011011 [Y]原码=11011011 [+1]原码=00000001 [-1]原码=10000001 [+127]原码=01111111 [-127]原码=11111111 原码表示的整数范围是: -(2n-1-1)~+(2n-1-1),其中n为机器字长。 则:8位二进制原码表示的整数范围是-127~+127 16位二进制原码表示的整数范围是-32767~+32767 2.反码 对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。 【例2.14】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 [X]反码=01011011 Y=-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 当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。 所以补码的设计目的是: ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则. ⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计

计算机原理平时作业

平时作业 1.请简要概述冯。诺伊曼计算机的主要设计思想、主要组成部分及各部分的功能。 答:主要设计思想是:数字计算的数制采用二进制,计算机应该按照程序顺序执行,主要组成部分有:运算器、逻辑控制装置、存储器、输入和输出设备 2.请给出下列数的原码,补码,反码和移码。 a.27/64 b.-27/64 答:a. 27/64的原码是0.011011,补码是0.011011,反码是0.011011,小数无移码(正数的原码补码反码都不变) b. -27/64的原码是1.011011,补码是1.100101,反码是1.100100,小数无移码(负数反码=原码除符号位外每位取反;补码=反码+1;反码=补码-1) 3.已知x和y,用变形补码计算x+y,同时指出结果是否溢出。 a.x=11001,y=01011; b.x=11001, y=-01011; c.x=-11001, y=-01011; 答:a. 0011001+0001011=0100100 正溢出 b. 0011001+1101011=0000100 没有溢出 c. 1111001+1101011=1100100 没有溢出 4.请概要描述进行浮点算术运算的几个主要步骤。 答: 1、浮点加减法的运算步骤 ①对阶操作:小阶向大阶看齐 ②进行尾数加减运算 ③规格化处理 ④舍入操作 ⑤判结果的正确性 2、浮点乘除法的运算步骤 ①阶码运算:阶码求和(乘法)或阶码求差(除法) ②浮点数的尾数处理:浮点数中尾数乘除法运算结果要进行舍入处理 5.请概要描述计算机多级存储体系结构的工作原理。在多级存储体系中,如何进行字容量扩充?如何进行位宽扩充? 答:计算机系统中通常采用三级层次结构来构成存储系统,主要是由高速缓冲存储器cache,主存储器,和辅助存储器组成。主存储器用来存放需CPU运行的程序和数据。 可由CPU直接编程访问,采取随机存取方式。Cache位于CPU与主存之间(有些Cache 集在CPU芯片之中),高速缓冲存储器(Cache)设置在CPU和主存之间,可以放在CPU 内部或外部。用来存放当前运行的程序和数据,它的内容是主存某些局部区域(页)的复制品。其作用也是解决主存与CPU的速度匹配问题,辅助存储器用来存放暂不运行但需联机存放的程序和数据。从CPU看来,这个整体的速度接近于Cache和寄存器的操

相关文档
最新文档