您的位置:技术中心首页 > 电路基础 >> 原码,反码,补码

原码,反码,补码

作者:未知   时间:2007-10-20 08:58:05  来自:网上转载  浏览次数:0  文字大小:【】【】【

基本概念 
  在计算机内部表示二进制数的方法称为数值编码,把一个数及其符号在机器中的表示加以数值化,称为机器数。机器数所代表的数称为数的真值。  表示一个机器数,应考虑以下三个因素: 
  1.机器数的范围
  字长为8位,无符号整数的最大值是(11111111)B=(255)D,此时机器数的范围是0~255。
  字长为16位,无符号整数的最大值是
  (1111111111111111)B=(FFFF)H=(65535)D      此时机器数的范围是0~65535。
  2.机器数的符号
  在算术运算中,数据是有正有负的,将这类数据称为带符号数。
  为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。
  3.机器数中小数点的位置
  在机器中,小数点的位置通常有两种约定:
  一种规定小数点的位置固定不变,这时的机器数称为“定点数”。
  另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。  
  4.原码
  正数的符号位为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
  5.反码        
  对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。【例2.14】当机器字长为8位二进制数时:
  X=+1011011  [X]原码=01011011   [X]反码=01011011
  Y=-1011011  [Y]原码=11011011   [Y]反码=10100100
   [+1]反码=00000001    [-1]反码=11111110
   [+127]反码=01111111    [-127]反码=10000000
  负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。         反码表示的整数范围与原码相同。
  6.补码
  正数的补码与其原码相同,负数的补码为其反码在最低位加1。

  【例2】(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
        16位二进制补码表示的整数范围是-32768~+32767
  当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。
  7.补码与真值之间的转换
  正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可得到该负数补码对应的真值的绝对值。

  【例3】[X]补码=01011001B,[X]补码=11011001B,分别求其真值X。
  (1)[X]补码代表的数是正数,其真值:
                                              X=+1011001B
                                                 =+(1×26+1×24+1×23+1×20)
                                                =+(64+16+8+1)
                                                =+(89)D
  (2)[X]补码代表的数是负数,则真值:
                                              X=-([1011001]求反+1)B
                                                =-(0100110+1)B
                                                =-(0100111)B
                                                =-(1×25+1×22+1×21+1×20)
                                                =-(32+4+2+1)
                                                =-(39)D

责任编辑:5life

更多相关 补码 的文章

本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造封装
总线协议
说文解字
工具学习
数字滤波
闲话漫谈
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  原码,反码,补码
  稳压二极管
  关于I/O口上拉电阻阻值问题
  PCB板蛇形走线有什么作用
  PCB设计技术问答精粹
  电容检测方法
  浅议电感磁珠
  浅谈电容充放电及电荷泻放
  0欧电阻的功能
  阻抗匹配问题小议

栏目最新

更多相关链接

  原码,反码,补码
  稳压二极管
  关于I/O口上拉电阻阻值问题
  PCB板蛇形走线有什么作用
  PCB设计技术问答精粹
  电容检测方法
  浅议电感磁珠
  浅谈电容充放电及电荷泻放
  0欧电阻的功能
  阻抗匹配问题小议

热点文章

更多相关链接

  CMOS反向器版图
  上拉电阻下拉电阻的总结
  认识IC Layout
  TTL和CMOS电平总结
  TTL电路
  状态机性能考察
  场效应管与三极管的性能比较
  基本数字逻辑单元
  使用Verilog实现基于FPGA的S...
  Mealy和moore型状态机的主要区别