数在计算机内部的表示及运算

正数的原码、反码、补码一样。负数的反码是原码取反,补码是反码加1。

例:十进制 8          十进制 -8 (第一位是符号位)

原码:01000          11000

反码:01000          10111

补码:01000          11000

引入移码:

计算机内部数的表示是用补码表示的。此时,可以发现比较数的大小并不好比较,因此我们把所有数都加上2^n(n为数的位数),故称移码。

按上边的例子,+1000+2^4 == 11000 > -1000+2^4 == 01000 就可以比较数的大小了。

此时可能有疑问,那小数在计算机中怎么表示的呢?

定点表示与浮点表示:

定点表示不多解释,上图:

 浮点表示:

 浮点表示实质上是一种科学计数法。改变阶码的运算就是移位运算。

运算篇

加减法:计算机计算加减法时用补码进行计算。直接加减即可。

但是,很可能产生一个问题(进位溢出)

解决方案:

一、一位符号位判断溢出:进位时向符号位进位,当符号位和计算的两个数的符号位不一样即为溢出。(符号不同的两个数是不会溢出的)

二、两位符号位判溢出:正数符号位为00,负数符号位为11,也进行运算。运算后符号位为01或10即为溢出。

乘除:进行原码运算。

乘法:运算后位数变为2倍。先乘高位,乘一次左移一次即可。

 

 

  除法:恢复余数法:由被除数的原码一次次减去除数的补码即可,每减一次,左移一下。

不恢复余数法:恢复余数法的变形,关系如图。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值