计算机原理(原码、反码、补码)

合集下载

补码的原理

补码的原理

补码的原理
补码是计算机中常用的一种表示负数的方法,它可以将减法运算转化为加法运算,简化了计算机的运算逻辑。

在计算机中,数据以补码的形式存储和运算,因此了解补码的原理对于理解计算机运算逻辑非常重要。

补码的原理可以通过以下几个方面来解释,原码、反码和补码的关系,补码的加减法运算,以及补码的应用。

首先,我们来看原码、反码和补码的关系。

在计算机中,正数的原码、反码和补码是相同的,而负数的反码和补码可以通过对其原码进行特定的变换得到。

具体来说,对于一个负数的原码,将其符号位保持不变,其他位取反得到其反码,再将反码加1得到其补码。

这样,负数的补码就可以通过正数的补码来表示,简化了计算机的运算逻辑。

其次,补码的加减法运算也是补码原理的重要部分。

在计算机中,加法运算可以统一为加法运算,而减法运算可以转化为加法运算。

这是因为在补码表示中,负数的补码可以通过正数的补码来表示,这样就可以将减法运算转化为加法运算,简化了计算机的运算逻辑。

最后,补码的应用也是补码原理的重要体现。

在计算机中,数据以补码的形式存储和运算,因此了解补码的原理对于理解计算机的运算逻辑非常重要。

补码的原理不仅可以帮助我们理解计算机中的数据表示和运算规则,还可以帮助我们更好地理解计算机程序的执行过程。

总的来说,补码的原理是计算机中非常重要的一部分,它可以将减法运算转化为加法运算,简化了计算机的运算逻辑。

通过了解原码、反码和补码的关系,补码的加减法运算,以及补码的应用,我们可以更好地理解补码的原理和在计算机中的应用。

这对于提高我们对计算机运算逻辑的理解和应用具有重要意义。

中职计算机原理(高教版)教案:原码、反码和补码

中职计算机原理(高教版)教案:原码、反码和补码

中职计算机原理(高教版)教案:原码、反码和补码第一章:原码教学目标:1. 理解原码的定义和表示方法。

2. 掌握原码的加法和减法运算规则。

教学内容:1. 原码的定义:原码是一种二进制表示方法,用于表示一个数的符号和大小。

2. 原码的表示方法:正数的原码与其二进制表示相同,负数的原码在最高位添加1。

3. 原码的加法和减法运算规则:同号相加,异号相减。

教学活动:1. 引入原码的概念,解释原码的定义和表示方法。

2. 通过举例说明原码的加法和减法运算规则。

3. 进行原码的加法和减法运算练习,巩固学生对原码的理解。

教学评价:1. 学生能够理解原码的定义和表示方法。

2. 学生能够正确进行原码的加法和减法运算。

第二章:反码教学目标:1. 理解反码的定义和表示方法。

2. 掌握反码的加法和减法运算规则。

教学内容:1. 反码的定义:反码是一种二进制表示方法,用于表示一个数的符号和大小,并且在原码的基础上取反。

2. 反码的表示方法:正数的反码与其原码相同,负数的反码在除符号位外的所有位取反。

3. 反码的加法和减法运算规则:同号相加,异号相减。

教学活动:1. 引入反码的概念,解释反码的定义和表示方法。

2. 通过举例说明反码的加法和减法运算规则。

3. 进行反码的加法和减法运算练习,巩固学生对反码的理解。

教学评价:1. 学生能够理解反码的定义和表示方法。

2. 学生能够正确进行反码的加法和减法运算。

第三章:补码教学目标:1. 理解补码的定义和表示方法。

2. 掌握补码的加法和减法运算规则。

教学内容:1. 补码的定义:补码是一种二进制表示方法,用于表示一个数的符号和大小,并且在反码的基础上加1。

2. 补码的表示方法:正数的补码与其原码相同,负数的补码在除符号位外的所有位取反后加1。

3. 补码的加法和减法运算规则:同号相加,异号相减。

教学活动:1. 引入补码的概念,解释补码的定义和表示方法。

2. 通过举例说明补码的加法和减法运算规则。

记忆和转换原码、反码、补码和移码其实很简单!

记忆和转换原码、反码、补码和移码其实很简单!

记忆和转换原码、反码、补码和移码其实很简单!最近在备战软考,复习到计算机组成原理的时候,看到书中关于原码、反码、补码和移码的定义异常复杂。

看完这些定义以后,我的脑袋瞬间膨胀到原来的二倍!这样变态的公式不管你记不记得住,反正我是记不住!还好,以前对它们有所了解,否则看到这一堆公式,恐怕我早就放弃参加软考的念头了。

其实,没必要弄得这么麻烦,它们完全可以用一两句话就描述得很清楚。

原码:如果机器字长为n,那么一个数的原码就是一个n位的二进制数有符号数,其中最高位为符号位:正数为0,负数为1。

剩下的n-1位为数值位,表示真值的绝对值。

凡不足n-1位的,小数在最低位右边加零;整数则在最高位左边加零来补足n-1位。

例如:X = +101011,[X]原= 0010 1011;X = -101011,[X]原= 1010 1011。

注意:正数的原、反、补码都一样。

0的原码跟反码都有两个,因为这里0被分为+0和-0。

反码:知道了原码,那么你只需要具备区分0跟1的能力就可以轻松求出反码。

因为反码就是在原码的基础上,符号位不变,其他位按位取反(就是0变1,1变0)就可以了。

例如:X = -101011,[X]原= 1010 1011,[X]反= 1101 0100。

补码:补码也非常简单,就是在反码的基础上,按照正常的加法运算加1。

例如:X = -101011,[X]原= 1010 1011 ,[X]反= 1101 0100,[X]补= 1101 0101。

也可以在原码的基础上,符号位不变,从右至左遇到第一个1以前(包括这个1)什么都不变,以后按位取反即可。

[X]原= 1000 0110,[X]补= 1111 1010注意:0的补码是唯一的,如果机器字长为8,那么[0]补=0000 0000。

移码:移码最简单了,不管正负数,只要将其补码的符号位取反即可。

例如:X = -101011,[X]原= 1010 1011,[X]反= 1101 0100,[X]补= 1101 0101,[X]移= 0101 0101。

简述原码、补码和反码的含义

简述原码、补码和反码的含义

简述原码、补码和反码的含义原码、补码和反码是用于表示有符号整数的三种不同的编码方式。

它们在计算机系统中用于处理带符号数的溢出和运算问题。

1. 原码(Sign and Magnitude):
•原码是最直观的一种表示方法,其中整数的符号用最高位表示(0表示正,1表示负),其余位表示数值的绝对值。

•例如,+5的8位原码表示为 00000101,-5表示为 10000101。

2. 反码(Ones' Complement):
•反码的符号位与原码相同,但是数值位取反。

即,正数的反码与原码相同,负数的反码是将其原码中的每一位取反。

•例如,+5的8位反码表示为 00000101,-5的8位反码表示为11111010。

3. 补码(Two's Complement):
•补码是计算机系统中最常用的表示方法,它解决了反码中的0有两个表示的问题。

•正数的补码与原码相同,而负数的补码是其反码加1。

•例如,+5的8位补码表示为 00000101,-5的8位补码表示为11111011。

这三种表示方法中,原码、反码和补码都有其优缺点。

补码在进行加减运算时更为方便,而且只有一种表示0的方式,因此在计算机中广泛应用。

在补码表示中,正数、负数的加法和减法可以通过相同的硬件电路实现,简化了计算机的设计。

计算机原理

计算机原理

解释一:对于整数来讲其二进制表示没有符号位.一个字节的表示范围为00001,由此可见一个字节的整数表示范围为[0,255=2^8 - 1]。

对于整数来讲,其二进制表示中存在一个符号位.先来看一下下面几个定义:1:在计算机中,负数以其正值的补码形式表达。

正数即在符号位补0.2:原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

3:反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

4:补码: 反码+1由以上可以得到.计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0;正数的原码、补码可以特殊理解为相同;负数的补码是它的反码加1。

范围: 正数 [00000000 - 01111111] 即[0, 2^7 - 1]。

负数 [ - ] 。

范围说明. - 1 = ,取反=00000001 即是-1. -1 = 01111111,取反=, 即是-128. 因此有一个有符号二进制表示范围是从[-128-127].解释二:大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即2^8(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~2^8 -1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。

别停下,还是一个字节的无符号整数,我们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用8位二进制表示为00000000(从理论上来说也可以表示成其他不同的二进制码,只要这256个数每个数对应的二进制码都不相同就可以了),再假设1表示为00000001,2表示为00000010,3表示为00000011,依次类推,那么最大的那个数255在8位二进制中就表示为最大的数,然后,我们把这些二进制码换算成十进制看看,会发现刚好和我们假设的数是相同的,而事实上,在计算机中,无符号的整数就是按这个原理来储存的,所以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。

中职计算机原理(高教版)教案:原码、反码和补码

中职计算机原理(高教版)教案:原码、反码和补码

中职计算机原理(高教版)教案:原码、反码和补码一、教学目标1. 让学生理解计算机中数值的表示方法,包括原码、反码和补码。

2. 让学生掌握原码、反码和补码的转换方法。

3. 让学生能够运用原码、反码和补码进行计算机中的数值运算。

二、教学内容1. 原码的概念和表示方法2. 反码的概念和表示方法3. 补码的概念和表示方法4. 原码、反码和补码的转换方法5. 原码、反码和补码的应用实例三、教学重点与难点1. 教学重点:原码、反码和补码的概念、表示方法及其转换。

2. 教学难点:原码、反码和补码的转换方法和应用。

四、教学方法1. 采用讲授法,讲解原码、反码和补码的概念、表示方法及其转换。

2. 采用案例分析法,分析原码、反码和补码的应用实例。

3. 采用互动教学法,引导学生参与讨论,解答学生疑问。

五、教学过程1. 引入:通过讲解计算机中数值表示的必要性,引出原码、反码和补码的概念。

2. 讲解原码:介绍原码的概念和表示方法,举例说明原码的表示。

3. 讲解反码:介绍反码的概念和表示方法,举例说明反码的表示。

4. 讲解补码:介绍补码的概念和表示方法,举例说明补码的表示。

5. 转换方法讲解:讲解原码、反码和补码之间的转换方法,并通过实例演示转换过程。

6. 应用实例分析:分析原码、反码和补码在计算机中的实际应用,如加减运算。

7. 课堂互动:引导学生提问,解答学生疑问,巩固所学知识。

9. 课后作业:布置相关练习题,巩固原码、反码和补码的知识。

六、教学评价1. 采用过程性评价和终结性评价相结合的方式,对学生在课堂中的学习态度、参与程度和作业完成情况进行评价。

2. 通过课后作业和练习题,检验学生对原码、反码和补码的掌握程度。

3. 在课后访谈或问卷调查中,了解学生对课堂教学的满意度和建议。

七、教学资源1. 教材:《中职计算机原理》高教版。

2. 课件:制作精美的课件,辅助讲解原码、反码和补码的概念、表示方法及其转换。

3. 案例素材:收集一些实际应用原码、反码和补码的案例,用于课堂分析和讨论。

二进制补码(负数编码)、反码、原码

二进制补码(负数编码)、反码、原码

⼆进制补码(负数编码)、反码、原码补码是对负整数在计算机中存储的⼀种形式;第⼆种形式的负数在计算机中可以使⽤(负号加数字)的形式表⽰⼀个负数;例如(-3 以1000 0011 存储)但是使⽤这种⽅法表⽰的只有(+0,-0),⽽且不可以做算术运算。

讨论⼆进制编码之前,⾸先来了解⼀下什么是计算机数和真值(⼀)计算机数⼀个数在计算机中的⼆进制表⽰形式,叫做这个数的机器数。

机器数数带符号的,由于计算机内部的硬件只能表⽰两种物理状态,在计算机使⽤⼀个数的最⾼位存放符号,正数为 0,负数为 1。

例如:⼗进制中的 +5 和 -5,计算机字长为8位,分别转换为 00000101 和 10000101;这⾥⾯的 00000101 和 10000101 就是机器数机器数的特点:⼀个数值的⼆进制表现形式,就叫做这个数的机器数。

⼆进制的位数是受机器设备的限制的。

机器内部设备⼀次能表⽰的⼆进制位数叫做机器的字长,⼀台机器的字长数固定的。

字长8位的叫做⼀个字节(Byte),机器字长⼀般都是字节的整数倍,如字长 8位、16位、32位、64位。

机器数的分类:根据⼩数点位置固定与否,机器数⼜可以分为定点数和浮点数。

通常使⽤定点数表⽰整数,使⽤浮点数表⽰实数:1、整数:整数没有⼩数部分,⼩数点固定在数的最右边。

整数可以分为(1) ⽆符号整数和 (2) 有符号整数两类。

⽆符号整数的所有⼆进制位全部⽤来表⽰数值的⼤⼩;有符号整数⽤最⾼位表⽰数的正负号,其他位数表⽰数值的⼤⼩。

2、实数:实数的浮点数表⽰⽅法:将⼀个实数的范围和精度分别⽤阶码和位数表⽰。

在计算机中,为了提⾼数据表⽰精度,必须表⽰⼩数点的位置,因此浮点数必须写成规范的形式(位数不为 0 的时候,其绝对值⼤于或等于 0.5 并且⼩于 1(因为是⼆进制位,要求尾数第 1 位必须是 1))。

例如:设机器字长位 16位,尾数为 8位,阶码为 6位,则⼆进制实数 -1101.010 的机内表⽰为 0000100111010100。

原码、反码、补码、移码

原码、反码、补码、移码

原码、反码、补码、移码《计算机组成原理》上讲得不清楚。

我总结了⼀下,希望对⼤家有帮助。

原码、反码、补码和移码,都是计算机对数的⼀种编码,其⽬的是⽅便地实现数据的存储和计算。

我们讨论的都是符号数。

⾸先给出真值和机器数的定义。

符号数的真值,是指直接⽤正号“+”和负号“-”来表⽰符号的⼆进制数。

机器数,是把符号位和数值位⼀起编码的⼆进制数。

⼀般⽤最⾼有效位来表⽰数的符号,正数⽤0表⽰,负数⽤1表⽰。

例如,真值+1001,对应的机器数为01001;真值-1001,对应的机器数为11001。

原码原码,即符号位加上⼆进制数的绝对值,最⾼位表⽰符号位,对于正数,符号位记为0,对于负数,符号位记为1,其余各位表⽰数值部分。

例如,真值+1001,对应的原码为01001;真值-1001,对应的原码为11001。

接下来讨论原码表⽰的数的范围。

我们从简单的⼊⼿,假如有⼀个两位⼆进制数,那么它有四种状态,即00或01或10或11,它可以表⽰1、2、3、4,若把最⾼位看作符号位(把它看作原码),则可以表⽰-1、-0、+0、+1。

推⼴得到,对于n位的⼆进制数,其原码表⽰的数的范围为:-(2(n-1)-1)~-0~+0~(2(n-1)-1)。

从原码的定义可以看到,这是⼀种很简单的编码。

原码的存储也很简单,只要增加⼀个符号位就可以了。

那么,它在计算中表现如何呢?我们不考虑溢出。

经过简单的计算可以知道,对于两个正数或两个负数之间的加法,原码是没有问题的。

但对于正数和负数之间的加法,则出现了错误。

例如,⽤8位⼆进制数的原码表⽰,2 + (-3) = 00000010 + 10000011 = 100000101 = -52 + (-2) = 00000010 + 10000010 = 10000100 = -4为了解决这个问题,我们引⼊了补码。

补码我们先以钟表对时为例说明补码的概念。

假设现在的标准时间为4点整,⽽有⼀只表已经7点了,为了校准时间,可以采⽤两种⽅法:⼀是将时针退7 - 4 = 3格;⼀是将时针向前拨12 - 3 = 9格。

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

计算机原理- 整数的补码,原码, 反码解释一:对于整数来讲其二进制表示没有符号位.一个字节的表示范围为00000000-11111111,由此可见一个字节的整数表示范围为[0,255=2^8 - 1]。

对于整数来讲,其二进制表示中存在一个符号位.先来看一下下面几个定义:1:在计算机中,负数以其正值的补码形式表达。

正数即在符号位补0.2:原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

3:反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

4:补码: 反码+1由以上可以得到.计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0;正数的原码、补码可以特殊理解为相同;负数的补码是它的反码加1。

范围: 正数[00000000 - 01111111] 即[0, 2^7 - 1]。

负数[10000000 - 11111111] 。

范围说明. 11111111 - 1 = 11111110,取反=00000001 即是-1. 10000000 -1 = 01111111,取反=10000000, 即是-128. 因此有一个有符号二进制表示范围是从[-128-127].解释二:大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即2^8(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~2^8 -1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。

别停下,还是一个字节的无符号整数,我们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用8位二进制表示为00000000(从理论上来说也可以表示成其他不同的二进制码,只要这256个数每个数对应的二进制码都不相同就可以了),再假设1表示为00000001,2表示为00000010,3表示为00000011,依次类推,那么最大的那个数255在8位二进制中就表示为最大的数11111111,然后,我们把这些二进制码换算成十进制看看,会发现刚好和我们假设的数是相同的,而事实上,在计算机中,无符号的整数就是按这个原理来储存的,所以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。

无符号的整数根本就没有原码、反码和补码。

只有有符号的整数才有原码、反码和补码的!其他的类型一概没有。

虽然我们也可以用二进制中最小的数去对应最小的负数,最大的也相对应,但是那样不科学,下面来说说科学的方法。

还是说一个字节的整数,不过这次是有符号的啦,1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127。

它在计算机中是怎么储存的呢?可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,剩下的7位用来储存数的绝对值的话,能表示2^7个数的绝对值,再考虑正负两种情况,2^7*2还是256个数。

首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,从00000001到01111111依次表示1到127。

那么这些数对应的二进制码就是这些数的原码。

到这里很多人就会想,那负数是不是从10000001到11111111依次表示-1到-127,那你发现没有,如果这样的话那么一共就只有255个数了,因为10000000的情况没有考虑在内。

实际上,10000000在计算机中表示最小的负整数,就是这里的-128,而且实际上并不是从10000001到11111111依次表示-1到-127,而是刚好相反的,从10000001到11111111依次表示-127到-1。

负整数在计算机中是以补码形式储存的,补码是怎么样表示的呢,这里还要引入另一个概念——反码,所谓反码就是把负数的原码(负数的原码和和它的绝对值所对应的原码相同,简单的说就是绝对值相同的数原码相同)各个位按位取反,是1就换成0,是0就换成1,如-1的原码是00000001,和1的原码相同,那么-1的反码就是11111110,而补码就是在反码的基础上加1,即-1的补码是11111110+1=11111111,因此我们可以算出-1在计算机中是按11111111储存的。

总结一下,计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。

下面再多举几个例子,来帮助大家理解!例:47→101111 有符号的整数原码反码补码47001011111101000000101111(正数补码和原码相同)-47001011111101000011010001(负数补码是在反码上加1)关于补码:补码用[x]表示机器数(原码),x是真值(二进制)x=+0.1001,则[x]原=0.1001x=-0.1001,则[x]原=1.1001对于0,原码中有“+0”、“-0”之分,故有两种形式:[+0]原=0.000 0[-0]原=1.000 0采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。

这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。

而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。

为了解决这些矛盾,人们找到了补码表示法。

机器数的补码可由原码得到。

如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。

负数用补码表示时,可以把减法转化为加法。

这样,在计算机中实现起来就比较方便[x]补={ x1>x≥0{ 2+x=2-|x|0≥x≥-1x=+0.1011,则[x]补=0.1011x=-0.1011,则[x]补=10+x=10.0000-0.1011=1.0101对于0,[+0]补=[-0]补=0.0000 (mod 2)例子中是以定点小数为例。

补码的原理可以用钟表来描述如设标准时间为4点正;一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退7-4=3 格;一是将时针向前拨12-3=9格。

即7-3和7+9(mod12)等价,因此,把负数用补码表示的mod2操作,可以把减法转化为加法。

补码说明:1、在计算机系统中,数值一律用补码来表示(存储)。

主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。

另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

2、补码与原码的转换过程几乎是相同的。

数值的补码表示也分两种情况:(1)正数的补码:与原码相同。

例如,+9的补码是00001001。

(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码0000111按位取反为1111000;再加1,所以-7的补码是11111001。

已知一个数的补码,求原码的操作分两种情况:(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。

(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。

例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”;其余7位1111001取反后为0000110;再加1,所以是10000111。

3、我在这里介绍一下“模”的概念:“模”是指一个计量系统的计数范围。

如时钟等。

计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。

例如:时钟的计量范围是0~11,模=12。

表示n位的计算机计量范围是0~2^(n)-1,模=2^(n)。

“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。

任何有模的计量器,均可化减法为加法运算。

例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。

对“模”而言,8和4互为补数。

实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。

共同的特点是两者相加等于模。

对于计算机,其概念和方法完全一样。

n位计算机,设n=8,所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。

又回了00000000,所以8位二进制系统的模为2^8。

在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。

把补数用到计算机对数的处理上,就是补码。

另外两个概念一的补码(one's complement) 指的是正数=原码,负数=反码而二的补码(two's complement) 指的就是通常所指的补码。

4、这里补充补码的代数加减运算:(1)补码加法[X+Y]补= [X]补+ [Y]补【例7】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”。

相关文档
最新文档