计算机运行加减乘除哪个最慢,计算机加减乘除运算原理

计算机加减乘除运算原理

加减法原理

原码,反码,补码

机器数:数值在计算机中的真实存储;如[+2]为[00000010],[-2]为 [10000010] ;其最高位称为符号位,0代表正数,1代表负数。

机器数的真数:机器数的真正数值,如[+2]为[0000010],[-2]为 [0000010] 等。

原码:符号位加真数的绝对值,用第一位表示符号, 其余位表示值。

反码:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

补码:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。 (即在反码的基础上+1)

例子

十进制

原码(符号位+真数)

反码(符号位不变)

补码(符号位不变)

85(正数)

0101 0101

0101 0101(正数:本身)

0101 0101(正数:本身)

-85(负数)

1101 0101

1010 1010(负数:非符号位取反)

1010 1011(负数:反码+1)

加减法原理

计算机内部存储的是0,1代码,从低位到高位只能进行加法运算,例0 0结果为0,0 1结果为1,1 1结果为0同时向高位进1

原码,反码,补码的加法运算

原码运算:如下图,原码运算对于负数参与的运算是不正确的,但是两个正数相加则正常;

反码运算:真数部分是正确的,但是对于0出现了[0000 0000]原和[1000 0000]两种编码;

补码运算:使用[1000 0000]代表-128,同时-128不存在原码

f24b740bc3b8567d6c2075f0cf50fa4e.gif

qq_38331606

补码

意义

使符号位以及真数同时参与运算;

可以把减法运算变成加法运算;而乘法可以用加法来做,除法可以转变成减法。

自然丢失

如下图,补码运算的最高位溢出情况下,其他位的结果正好为数据的运算结果

f24b740bc3b8567d6c2075f0cf50fa4e.gif

qq_38331606

乘法

原理:计算机数值都是用2的N次方来表示的:2^n0+2^n1+2^n2+2^n3+2^n4......

x*y=(x)*(2^n0+2^n1+2^n2+2^n3+2^n4)

=(x*2^n0)+(x*2^n1)+(x*2^n2)+(x*2^n3)+(x*2^n4)+......

=(x左移n0)+(x左移n1)+(x左移n2)+(x左移n3)+(x左移n4)+......

实例15(x)*13(y),即1111*1101

a.首先y的最低位为1(2^0),x左移0位得到1111

b.然后y的最低第二位为0,没有2^1存在,因此本次无运算,得到为0

c.然后y的最低第三位为1(2^2),x左移2位得到111100

d.然后y的最低第四位为1(2^3),x左移3位得到1111000

e.把a、b、c、d的结果相加1111+0+111100+1111000=11000011(195),该结果就是乘法的结果

除法

原理

左移运算。符号位不参与运算

实例:51/3

f24b740bc3b8567d6c2075f0cf50fa4e.gif

qq_38331606

大小比较

真数从高位到低位比较,符号位单独比较

移位运算

<< : 左移运算符,num << 1,相当于num乘以2

如:0000 0010 左移2位为 0000 1000  ;从2变为16

>> :右移运算符,num >> 1,相当于num除以2

如:0000 1000 右移2位为 0000 0010,从16变为2

转载自原文链接, 如需删除请联系管理员。

原文链接:计算机加减乘除运算原理,转载请注明来源!

分享到:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值