`
younglibin
  • 浏览: 1210910 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

原码、反码和补码

 
阅读更多

原码: 就是 原始数据, 

反码:符号不变, 其余按位取反

补码:对于二进制而言,就是反码加 1,其实就是 (模-该位置的值 == 1-1 == 0)

 

(举例:在十进制中   ,   2和8互为补数),

 

一般的,假定M为模,若数a和b满足a+b=M,则称a,b互为补数。

二进制中 可以参考十进制,即  0  == 10   10 ==0

 

 

 

在计算机内,定点数有三种表示法:原码、反码、补码

所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值大小

 

反码的表示法规定:正数的反码与原码相同,负数的反码是除符号位外,逐位取反。

 

补码的表示法规定:正数的补码与原码相同,负数的补码是在反码的末位加1.

 

1、原码、反码和补码的表示法

例如:                符号位               数值位

 

          [+7]原=       0                  000 0111

  [-7]原=       1                  000 0111

   注意:a、数0的原码有两种形式:

       [+0]原=0000 0000       [-0]原=1000 0000

 b、8位二进制原码的表示范围:-127~+127

2、反码:

   正数:正数的反码与原码相同

负数:负数的反码,符号位为“1”,数值部分按位取反。

例如:             符号位                 数值位

         [+7]反=    0                     000 0111

 [-7]反=    1                     111 1000

注意:a、数0的反码也有两种形式,即:

          [+0]反=  0000 0000

  [-0]反=  1111 1111

 b、8位二进制反码的表示范围:-127~+127

3、补码的表示方法:

   1)模的概念:把一个计量单位称为模或模数。例如:时钟是以12进制进行计数循环的,

  即以12为模。在时钟上,时针加上(正拨)12的整数位或减法(反拨)12的整数位,

  时针的位置不变。14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。从0点

  出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),

  即2点(0-10=-10+12=2)。因此在模12的前提下,-10可映射为+2,由此可见,对于

  一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,

  凡是减10的运算都可以用加2来替代,这就把减法问题转化为加法问题了(注:计算机的

  硬件结构中只有加法器,所以大部分的运算都必须始终转换为加法)。10和2对于模12而言互为补数。

  

  同理:计算机的运算部件与寄存器都有一定字长的限制(假设字长为8),因此它的运算

  也是一种模运算。当计数器计满8位也就是256格数后会产生溢出,又从头开始计数。产生

  溢出的量就是计数器的模。显然,8位二进制数,它的模数为18=256.在计算机中,两个互补

  的数称为“补码”。

  

2)补码的表示:

   正数:正数的补码与原码相同。

   负数:负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1.也就是反码+1.

例如:             符号位                数值为

[+7]补=               0                   000 0111

[-7]补=               1                   111 1001  

 

补码在微型机中是一种重要的编码形式,请注意:

a、采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。正数的补码即

  是它所表示的数的真值,而负数补码的数值部分却不是它所表示的数的真值。采用补码进

  行运算,所得结果仍为补码。

b、与原码、反码不同,数值0的补码只有一个,即[0]补=0000 0000

c、若字长为8位,则补码所表示的范围为-128~+127;进行补码运算时,应注意所得结果不应该超过

补码所能表示的范围。

分享到:
评论

相关推荐

    原码反码补码讲课.pptx

    原码反码补码讲课 计算机中的数值表示是计算机基础知识的重要组成部分。在计算机中,数值可以分为整数和实数两大类。整数又可以分为无符号整数和带符号整数。无符号整数是指不带符号的整数,而带符号整数则是带有...

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

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

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

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

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

    在计算机科学中,二进制表示的数字有三种主要形式:原码、反码和补码,主要用于表示有符号整数。本项目是基于C++的MFC(Microsoft Foundation Classes)框架实现的一个实用工具,旨在帮助用户理解并进行原码、反码和...

    原码反码和补码PPT学习教案.pptx

    计算机中的数字表示是一个关键概念,尤其在理解计算机底层工作原理时。...同时,通过原码、反码和补码之间的转换,可以方便地进行数值的表示和计算。掌握这些基本概念对于理解和编程计算机系统至关重要。

    原码反码补码说课.pptx

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

    原码反码补码PPT学习教案.pptx

    原码反码补码是计算机系统中最基本的概念之一,了解原码反码补码的原理和应用对于计算机科学和技术的学习非常重要。本资源摘要信息将对原码反码补码的概念、特点和应用进行详细的介绍。 一、机器数与真值 机器数是...

    整数的原码,反码和补码

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

    原码、反码、补码

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

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

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

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

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

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

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

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

    原码、反码和补码是计算机中用来表示有符号整数的重要概念,它们主要用于二进制数的存储和计算,特别是在计算机硬件中简化运算过程。以下是对这些概念的详细解释: 1. **原码**: 原码是最直观的表示方式,直接在...

    数字的原码、反码和补码

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

    二进制转原码反码补码 C语言源码

    /* *功能实现任意二进制数的原码 反码 补码转换 *仅仅是字符串的操作,没有进行数字操作 *对-0的操作可能有问题 *ssfshine@gmail.com */

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

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

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

    本文主要探讨了机器数、真值以及原码、反码和补码这三种在计算机中表示有符号整数的关键概念。 首先,机器数是计算机中用于表示数值的二进制形式,包括符号位。在有符号数中,最高位通常作为符号位,0代表正数,1...

    原码反码补码图解.

    原码反码补码图解.原码反码补码图解.原码反码补码图解.

    计算机原码,反码,补码.pdf

    计算机原码、反码和补码是计算机中对数字的表达方式。机器数是计算机中数字的表现形式,分为正负两类,通过最高位(符号位)来表明其正负,其中0表示正数,1表示负数。 原码是计算机中最原始的数字表达方式,第一个...

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

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

Global site tag (gtag.js) - Google Analytics