×

计算机中数的运算(源码,反码,补码)

作者:Terry2017.05.26来源:Web前端之家浏览:19040评论:1
关键词:源码反码补码

1、计算机中,所以的运算都会被转成二进制来运算,首页我们来看看无符号十进制的加法和减法运算;

10+11=21;这是一个简单的加法,可计算机可不是逢十进一;

首页把10转为二进制的源码为:1010,11转为二进制的源码为:1011;

然后把这两个两进制相加1010+1011=10101,然后把10101转换成十进制也就是21了。

图片1.png

不相信的朋友可以试一试,计算机无符号加法运算就是这样的。

2、我们又来看有符号数的加法,所谓有符号位,就是带有符号的数字,比如负数 -1(+1这也算有符号数)。

有符号数就必须求出数的补码来运算

继续来一个公式:-10+11=1;

我们来得出-10的补码

有符号数都必须在源码前面加一位符号位,负数位1,正数为0

首先求出-10的源码为:11010(我这里说的源码大家不要太难理解。其实就是这个数二进制表达数.)

根据源码求出反码位:10101(反码就是在源码的基础上求反,1变为0,0变为1,符号位不变)

根据反码求出补码:10110(补码就是在反码的基础上加1)

-10的补码就为:10110

11的补码为:01011(正数的源码,反码,补码一致,都是源码,前面的0是加的符号位)

然后计算10110+01011=100001(然后丢掉进位符号位就为00001),00001转为十进制就为1.这样就求出来了。

附一张图你们更好理解:

图片2.png

有符号和无符号的加法运算就到这里。减法运算与加法大同小异,下一篇:讲解乘法和除法的运算

补充:最后的结果都为补码形式的,因为正数的源码 反码 补码 都是一样。所以结果为正数可以直接使用这个二进制转为十进制结果。

但是如果结果为负数,就需要把补码转为源码。然后在转为十进制结果。

补码转源码也是。符号位不变,其他位取反,然后加+1

您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/codeYuanmaList.html

网友评论文明上网理性发言已有1人参与

发表评论:

评论列表