1、计算机中,所以的运算都会被转成二进制来运算,首页我们来看看无符号十进制的加法和减法运算;
10+11=21;这是一个简单的加法,可计算机可不是逢十进一;
首页把10转为二进制的源码为:1010,11转为二进制的源码为:1011;
然后把这两个两进制相加1010+1011=10101,然后把10101转换成十进制也就是21了。
不相信的朋友可以试一试,计算机无符号加法运算就是这样的。
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.这样就求出来了。
附一张图你们更好理解:
有符号和无符号的加法运算就到这里。减法运算与加法大同小异,下一篇:讲解乘法和除法的运算
补充:最后的结果都为补码形式的,因为正数的源码 反码 补码 都是一样。所以结果为正数可以直接使用这个二进制转为十进制结果。
但是如果结果为负数,就需要把补码转为源码。然后在转为十进制结果。
补码转源码也是。符号位不变,其他位取反,然后加+1
网友评论文明上网理性发言已有1人参与
发表评论:
评论列表