计算机的运算方法

版权声明:本文为博主原创文章,未经博主允许不得转载。多多评论,与博主一起学习编程。 https://blog.csdn.net/Roobert_Chao/article/details/78597129

计算机的运算方法

  • 1丶 无符号数和有符号数
  • 2.丶数的定点表示和浮点表示
  • 3.丶定点运算
    • 1、移位运算
    • 2、加减法运算
    • 3、乘法运算
    • 4、除法运算
  • 4丶浮点的四则运算

一丶无符号数和有符号数

  • 数包括有符号数和无符号数。
    -*****************-
  • eg: 机器字长为16为进制的范围。
    • 无符号数:0-65535。【0~(2^16)-1】
    • 有符号数:-32768~32767。【符号位占一位】+【-(2^15)~[(2^15)-1]】
  • 符号位:
    • ”0”代表正;
    • “1”代表负;

二丶数的定点表示和浮点表示

定点数:包含【数符;整数部分】和【数符;小数部分】。

  • 表示的定点数不是【纯整数】就是【纯小数】。

浮点数:灵活的表示小数点的位置。

  • 表示所有实数

1、数的定点表示。

①、若机器数采用原码
|- 小数在定点机中数的表示范围是【-(1-2^n)~(1-2^n)】。
|- 整数在定点机中数的表示范围是【-(2^n-1)~(2^n-1)】。
②、表示的数如果不是纯小数和纯整数,则必须乘上一个比例因子,否则会“溢出”。
③、三种机器数原码、补码、反码的特点归纳:

  • a、最高位均为符号位,符号位与数值部分用,或者.隔开。
  • b、当真值为正时,原码、补码、反码相同。
  • c、当真值为负时,符号位都用"1"表示,数值部分关系是:

    • 补码=原码“取反加一”。
    • 反码=原码“每位取反”。
  • d、负补码=补码“连同符号位在内的每位取反加一”

2、数的浮点表示。

N=S*(r^j) 。
|- S:表示尾数(可正可负)。
|- j:为阶码(可正可负)。
|- r:是基数(可取2、4、8、16、etc…)

  • 小数点右移阶码为负;
  • 小数点左移阶码为正;
  • 小数点左移动两位阶码为10,右移两位为-10。
  • 小数点左移动三位阶码为11,右移两位为-11。

①、浮点数的表现形式:

  • |--阶符--|--阶码数值部分--|--数符--|--尾数的数值部分--|
  • 阶码,/.阶码数值部分;数符,/.尾数的数值部分。

②、阶码的表示范围:

  • 没有规格化-2^(2^m-1)*(1-2^(-n))~-2^[-(2^m-1)]*(1-2^(-n))

    • 上边表示的是负数区,正数区就是负数区的绝对值。

    • 中间的是"下溢",两边的是"上溢"。

  • 规格化-2^(2^m-1)*(1-2^(-n))~-2^[-(2^m-1)]*(2^(-1))
    -同没有规格化的一样

三丶定点运算

1、乘法运算(部分积+乘数)

①、乘法运算可用【移位】和【加法】来实现。

  • n位数相乘,共需n次加法和n次移位
  • 乘法的一位都是向右移位。

②、由乘数的末位值确定的被乘数是否与原部分积相加,然后移一位,形成新的部分积,同时,乘数也右移一位,由此低位作为新的末位,空出最高位放部分积的最低位。

※ 原码一位乘

1、乘积的符号位由两原码的符号位【异或】运算结果决定。

  • 【符号位的运算】与【数值部分】分开计算。

2、乘积的数值部分由两数的【绝对值】相乘。

3、乘数为1,加上【原码的绝对值】;乘数为0 ,加上0。

4、最初的部分积 Z=0。

5、最后一步是需要移位的。

※ 原码两位乘

两位乘的后两位与标志为的状态决定,其余和一位乘相同

※ 补码一位乘

简单算法:

  • 直接取补码进行计算,不需要用到绝对值。
  • 乘数大于 0 :只是在相加移位的时候按补码规则进行,其余和原码一位乘相同。
  • 乘数小于 0 :先不考虑符号位,最后的一步要加上 [-x]补码。

Booth算法:

  • 需要考虑一个附加位[y(n+1)]
  • 这个附加位的来源是乘数的右移的丢弃的项。

※ 补码两位乘

  • 取三位符号位。
  • 由后三位取判断如何操作。

2、除法运算(上商)

1、原码除法
|- 向左移位
|- 被除数(余数)、商为0;第一步加上除数的负补码。
|- 上商 n+1 次。

  • ①、恢复余数法
    |-余数为负数,上商为"0",恢复余数【除数的绝对值的补码】
    |-被恢复的被除数左移1位,加上【除数的绝对值的负补码】

    |- 余数为正数,上商为”1”,左移1位,加上【除数的绝对值的负补码】`

  • ②、加减交错法
    |-余数为负数,上商为"0",左移1位,加上【除数的绝对值的补码】
    |-余数为正数,上商为"1",左移1位,加上【除数的绝对值的负补码】

2、补码除法

四丶浮点的四则运算

参考百度文库吧,总结的比我好多了!!!

猜你喜欢

转载自blog.csdn.net/Roobert_Chao/article/details/78597129
今日推荐