`

反码和补码怎么来的

 
阅读更多
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作〔x〕原。

例如,X1= +1010110

X2= 一1001010

其原码记作:

〔X1〕原=[+1010110]原=01010110

〔X2〕原=[-1001010]原=11001010

原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:

最大值为0.1111111,其真值约为(0.99)10

最小值为1.1111111,其真值约为(一0.99)10

当用8位二进制来表示整数原码时,其表示范围:

最大值为01111111,其真值为(127)10

最小值为11111111,其真值为(-127)10

在原码表示法中,对0有两种表示形式:

〔+0〕原=00000000

[-0] 原=10000000

(2)补码表示法

机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作〔X〕补。

例如,[X1]=+1010110

[X2]= 一1001010

[X1]原=01010110

[X1]补=01010110

即 [X1]原=[X1]补=01010110

[X2] 原= 11001010

[X2] 补=10110101+1=10110110

补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:

最大为0.1111111,其真值为(0.99)10

最小为1.0000000,其真值为(一1)10

采用8位二进制表示时,整数补码的表示范围:

最大为01111111,其真值为(127)10

最小为10000000,其真值为(一128)10

在补码表示法中,0只有一种表示形式:

[+0]补=00000000

[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)

所以有[+0]补=[+0]补=00000000

(3)反码表示法

机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作〔X〕反。

例如:X1= +1010110

X2= 一1001010

〔X1〕原=01010110

[X1]反=〔X1〕原=01010110

[X2]原=11001010

[X2]反=10110101

反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。

例1. 已知[X]原=10011010,求[X]补。

分析如下:

由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即

[X]原=10011010

[X]反=11100101

十)      1

[X]补=11100110

例2. 已知[X]补=11100110,求〔X〕原。

分析如下:

对于机器数为正数,则〔X〕原=〔X〕补

对于机器数为负数,则有〔X〕原=〔〔X〕补〕补

现给定的为负数,故有:

〔X〕补=11100110

〔〔X〕补〕反=10011001

十) 1

〔〔X〕补〕补=10011010=〔X〕原

转自:http://zhidao.baidu.com/link?url=CYQqDin1kRuty6yilRvVGqD_8fxGAVw0sEkxAG5DxoERgM9bqn0mtpxk5fQKhRf8JI54lxDyaxw7oX11bxVHMa 
分享到:
评论

相关推荐

    原码、反码、补码三码转换(C#)

    在计算机科学中,原码、反码和补码是用于表示二进制数值,特别是负数的三种方式。本文将详细讲解这三种编码方式,并通过C#编程语言演示如何进行三码之间的转换。 1. 原码(Direct Code): 原码是最直观的二进制...

    原码、反码、补码

    - **负数**的原码、反码和补码不同,其中补码是通过对原码取反后加1得到的。 - 补码的主要优点在于简化了计算机内部的运算逻辑,使得减法可以转化为加法运算。 了解这些概念对于理解计算机内部的数值表示和运算机制...

    整数的原码,反码和补码

    ### 整数的原码、反码和补码详解 在计算机科学中,原码、反码和补码是表示有符号整数的三种主要方式。它们被广泛应用于数据存储和算术运算中,每种编码方式都有其特定的规则和应用场景。 #### 一、原码(Sign and ...

    补码源码反码转换工具,补码反码原码的转换工具,C/C++

    在计算机系统中,通常使用补码来存储和处理有符号整数。 4. **MFC(Microsoft Foundation Classes)**: MFC是微软提供的一个C++类库,它提供了对Windows API的封装,使得开发者能够更容易地构建Windows应用程序。...

    计算机基础知识:原码反码补码练习(含答案)

    原码、反码和补码是二进制表示正负数的关键概念,它们主要用于无符号整数和有符号整数的表示。以下是对这些知识点的详细解释: 1. **原码**:原码是最直观的二进制表示,其中最高位(称为符号位)为0表示正数,为1...

    计算机中的原码、反码和补码

    在深入探讨计算机中表示有符号整数的原码、反码和补码之前,让我们先回顾一下计算机存储数据的基本单位——字节。正如文中所述,一个字节由8位组成,每位可以是0或1,因此一个字节可以表示\(2^8 = 256\)种不同的状态...

    为什么需要反码和补码?.docx

    总之,原码、反码和补码是计算机中表示和处理整数的重要手段,尤其是补码,它不仅解决了正负数相加的不唯一性,还使减法可以通过加法来实现,极大地简化了计算机硬件的设计。在Java和其他编程语言中,这些底层的计算...

    原码、反码、补码、移码与浮点.doc

    原码、反码、补码、移码与浮点数 原码、反码、补码、移码是计算机科学中用于...本文对原码、反码、补码、移码的定义和浮点数的表示方式进行了详细的介绍,并对补码加、减运算规则和原码一位乘、除的实现进行了讨论。

    原码反码补码讲课.pptx

    在计算机的运算中,无论数据是正数还是负数,机器数都统一使用补码来存储和处理,这是因为补码不仅解决了运算上的问题,还使得硬件实现更为高效。 虽然补码在计算机中具有显著的优势,但我们也不应忽视它的缺点。...

    学习原码, 反码和补码之前, 需要先了解机器数和真值的概念

    学习原码、反码和补码之前,需要先了解机器数和真值的概念 在学习原码、反码和补码之前,需要先了解机器数和真值的概念。这是因为机器数和真值是计算机中表示数值的基础。 机器数是指一个数在计算机中的二进制表示...

    数字的原码、反码和补码

    负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的。在补码中用(-128)代替了(-0),所以补码的表示范围为:(-128~0~127),共 256 个。注意:(-128) 没有相对应的原码和反码,(-128) = ...

    机器数, 真值, 原码, 反码, 补码 详解

    总的来说,原码、反码和补码是计算机科学中表示和处理有符号整数的重要手段。它们各自服务于特定的计算需求,尤其是补码,使得计算机在处理负数时能够保持运算的一致性和效率。理解这些基本概念对于深入学习计算机...

    原码,反码,补码详解及原理.docx

    原码、反码和补码是计算机中用来表示有符号整数的重要概念,它们主要...总的来说,原码、反码和补码是计算机处理有符号数的基础,它们在内存、寄存器和计算过程中起着关键作用,使得二进制的算术运算更为便捷和高效。

    16进制(4位)到二进制原码、反码、补码计算

    16进制(4位)到二进制原码、反码、补码计算

    原码反码补码说课.pptx

    "原码反码补码说课.pptx" 本资源是关于计算机组成原理的教学课件,主要讲解了原码、反码和补码的概念、计算方法和表示范围。该课件旨在培养学生实事求是的学风、耐心细致的工作作风和严谨的工作态度。 一、知识...

    学习电脑信息原码反码补码详细解析

    "学习电脑信息原码反码补码详细解析" 本文详细介绍了原码、反码和补码的概念、计算方法和应用场景。在学习原码、反码和补码之前,需要了解机器数和真值的概念。机器数是指一个数在计算机中的二进制表示形式,带符号...

    原码、反码和补码1

    在计算机科学中,原码、反码和补码是用来表示有符号整数的不同方式,尤其在二进制系统中显得尤为重要。这些编码方法是计算机处理数值运算的基础,尤其是在硬件层面。 1. **机器数和真值** 机器数是指一个数在...

    原码,反码和补码说明

    对于原码,反码和补码很懵逼的人群

    原码、反码、补码的相关原理

    在高级编程语言中,虽然程序员通常不直接接触到原码、反码和补码,但这些概念是理解计算机内部数据表示和运算机制的基础。 #### 七、总结 原码、反码和补码是计算机科学中用于表示和处理数值的重要概念。它们的...

Global site tag (gtag.js) - Google Analytics