zoukankan      html  css  js  c++  java
  • 6 计算机的运算方法

    6.1 无符号数和有符号数 

    6.3 定点运算

    6.2 数的定点表示和浮点表示 

    6.4 浮点四则运算

    6.5 算术逻辑单元 

     

     解析一下:这是从数学上描述的负数的原码的表示:

    x的原码的真值 = 2^n的真值 - x的真值,也就是2^n的真值 减去 x的真值得到的数的二进制表示就是x的原码。

    比如-2, 2^2 - -2 = 6 ,所以-2的原码表示 是6的原码110

    x是负数时,|x|+2^n = -x +2^n = 2^n - x

    例如 -2 即 2^2 - (-2) ,也就是100 - -10 = 110,就是2的原码

    减一个数 = 加上该数的补数。

    即A-B= A+B的补数 = A + (模-B)

    钟表中(mod 12),时针回调4h,则 6 -4 =2 =  6 + 8

     

    负数的模因为需要加符号位的原因,比通常意义的模大一倍。

     证明:

    因为:

    x原 = 2^n - x真

    x补 = 2^(n+1) + x真

    所以:

    x原= 2^(n+1) - (x补-2^n) = (n+1)个1  - (x补-2^n)  +1 

    所以x原 是

    x补符号位保持不变,每位取反,末位加1 。

     

     对于正数,原码 = 补码 = 反码 

     对于负数 ,符号位为 1,其 数值部分 

    原码除符号位外每位取反末位加 1  -> 补码

    原码除符号位外每位取反 -> 反码 

     根据上图可以看出,1和-127的补码的整数部分是一样的,

    所以求-127的补码时,可以转换为求-1的原码

    互为正负数的补码相加为2^(n+1)

    对于<=0的数,

    给出补码求真值:模减去整数位,添加正负号。

    给出反码求真值: 模减去整数位+1,添加正负号。

    移码是把补码符号位取反

    规格化浮点数的原因:为了更大的精确度。

    规格化浮点数,要求小数点后一位不能是0,必须是1。
       (有点像科学计数法,但是和科学计数法比起来,小数点要左移一位。  )

    比如位数是2位情况下,

    计算 0.1*0.1 = 0.01*2^1  *   0.01*2^1 = 0.0001*2^2,因为尾数只有2位,所以得到0.00*2^2,丢失精度。

    如果规格化,0.1*0.1 = 0.1*2^0  *   0.1*2^0= 0.01*2^0,因为尾数只有2位,所以得到0.01*2^0,最大可能保留精度

     

     

     

    注意,补码右移时,比如:-13>>2 = 7

    算术移位和逻辑移位的区别 

    算术移位  有符号数的移位 

    逻辑移位  无符号数的移位 

     

     

     一个寄存器保存被乘数,一个保存乘数,一个保存符号位

     

     

     

     

     

     

    串行为时间为 2n

    并行为 2.5

    单重分组为 2.5*组数

    多重分组为 2.5*(重数+1)

    一般为串并混合,下图的时间为 2.5*3 +2.5 = 10

     

     

     

     

  • 相关阅读:
    Linq的Except
    BZOJ 1324 Exca神剑 最小割
    先学习Oracle 11g的Automatic Diagnostic Repository新功能
    NYOJ 300 &amp;&amp; hdu 2276 Kiki &amp; Little Kiki 2 (矩阵高速功率)
    V微软S2015下载:开展Win10/Linux/iOS多平台软件
    LeetCode Length of Last Word
    QT 打开文件对话框汇总
    取缔Chrome装载电脑管家的广告过滤脚本代码
    三种常见的图像处理双三次插值算法
    Best Time to Buy and Sell Stock I,II,III [leetcode]
  • 原文地址:https://www.cnblogs.com/lakeslove/p/13161050.html
Copyright © 2011-2022 走看看