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


    原码的缺陷造成实现原码加减法的硬件比较复杂。为了简化运算,让符号位也作为数值的一部分参加运算,并使所有的加减运算均以加法运算来代替,人们提出了补码表示。下一节待续。
  • 相关阅读:
    ABP初始化
    ABP生成错误:必须添加对程序集“netstandard”的引用
    树莓派安装Mysql
    多对多关系的中间表命名
    dapper.net 存储过程
    Rabbitmq发送方消息确认
    Rabbitmq发送消息Message的两种写法
    ThreadLocal原理
    多模块打包为可执行jar问题
    类中属性加载顺序的demo
  • 原文地址:https://www.cnblogs.com/xieji233/p/6155651.html
Copyright © 2011-2022 走看看