zoukankan      html  css  js  c++  java
  • 计算机中如何表示数字-02原码

    原码是一种简单、直观的机器数表示方式,其表示形式与真值的形式最为接近。上一篇中例1-2中展示的定点数采用的既是原码表示。原码规定机器数的最高位为符号位,0表示正、1表示负,数值部分在符号位后面,并以绝对值的形式给出。


    设x为n位二进制数,下面给出纯小数、纯整数的原码定义:


    ü x为纯小数,0<=x<1时,它的原码等于真值x;-1<x<=0时,它的原码等于1+|x|。


    ü x为纯整数,0<=x<2^n时,它的原码等于真值x;-2^n<x<=0时,它的原码等于2^n+|x|。


    例2-1:已知x,求x的原码。


    +0.1010110、-0.1010110、+1010110、-1010110


    结果:0.1010110、1.1010110、01010110、11010110


     


    真值0的原码表示:原码中真值0的表示有两种,即+0和-0。


    纯小数的原码,+0为0.0000000、-0为1.000000;纯整数的原码,+0为00000000、-0为10000000。


    原码的缺陷:0的表现形式不唯一;原码表示不便于实现加减运算。原码的加减运算过程有些类似我们自己进行加减运算的过程。当两数相加时,首先要判断两数的符号,若同号则做加法,若异号则做减法。当两数相减的时候,不禁要判断两数的符号,使得同号相减、异号相加;还要判断两数绝对值的大小,用绝对值大的数减去绝对值小的数,取绝对值大的数的符号为结果的符号。可见过程复杂不适合实现加减运算。但是原码的乘除运算可以通过数位的左移和右移来实现,还是很方便的。


    原码的缺陷造成实现原码加减法的硬件比较复杂。为了简化运算,让符号位也作为数值的一部分参加运算,并使所有的加减运算均以加法运算来代替,人们提出了补码表示。下一节待续。
  • 相关阅读:
    Fiddler抓包9-保存会话(save)
    Selenium2+python自动化61-Chrome您使用的是不受支持的命令行标记:--ignore-certificate-errors
    Fiddler抓包8-打断点(bpu)
    Fiddler抓包7-post请求(json)
    Java图片验证码
    servlet过滤器
    servlet监听器实现在线人数统计
    基于MVC模式的数据库综合练习
    JSTL详解
    初识EL表达式
  • 原文地址:https://www.cnblogs.com/xieji233/p/6155651.html
Copyright © 2011-2022 走看看