02.二进制运算
2016-10-15 13:00
239 查看
原码:通过最高位作为符号位的方法来表示一个二进制数的正负,0表示正1表示负;比如
10001和-10001的八位二进制原码分别为00010001和10010001
反码:正数的反码和原码相同,负数的反码保持符号位不变,其余各位取反即0变1,1变0;比如原码00010001和10010001的反码分别为00010001和11101110
补码:正数的补码和源码相同,负数的补码为先取其反码再在最低位加1;比如原码00010001和10010001的补码为00010001和11101111
ps:正数的原码,反码,补码都一样,计算机中都是用补码进行计算
则计算10101-00101(换成十进制是21-5)的步骤就为:先将两个二进制数转换为8位二进制补码的形式
00010101和11111011,然后再将两数相加,如图一:
图一
因为符号位进位了所以要舍去进位,最终结果为00010000,注意这个结果是补码,还要转换回去,因为这个补码是正数所以原码还是他自己即00010000换成十进制为16
二进制加法:
二进制加法从低位开始逢二进1,比如29+5=34换成2进制就是11101+00101=100010;二进制减法:
对于计算机来说它是只能进行加法运算不能做减法运算的,所以减去一个二进制数就等于加上这个数的负数。原码:通过最高位作为符号位的方法来表示一个二进制数的正负,0表示正1表示负;比如
10001和-10001的八位二进制原码分别为00010001和10010001
反码:正数的反码和原码相同,负数的反码保持符号位不变,其余各位取反即0变1,1变0;比如原码00010001和10010001的反码分别为00010001和11101110
补码:正数的补码和源码相同,负数的补码为先取其反码再在最低位加1;比如原码00010001和10010001的补码为00010001和11101111
ps:正数的原码,反码,补码都一样,计算机中都是用补码进行计算
则计算10101-00101(换成十进制是21-5)的步骤就为:先将两个二进制数转换为8位二进制补码的形式
00010101和11111011,然后再将两数相加,如图一:
图一
因为符号位进位了所以要舍去进位,最终结果为00010000,注意这个结果是补码,还要转换回去,因为这个补码是正数所以原码还是他自己即00010000换成十进制为16
为什么补码的最高位进位可以舍去?
这个和补码的作用有关,他就是为了解决二进制减法符号位进位的问题而出现的。不需要过于纠结其中原理
相关文章推荐
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- Lesson02 二进制运算
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- 20161208计算机科学导论02_二进制运算
- 一元多项式的乘法与加法运算 PTA02-线性结构1
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-02-基于Python的卷积运算
- IO-02. 整数四则运算
- PAT数据结构_02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 位运算实现输出数字的二进制
- 位运算总结1. 二进制的逆置
- 用二进制的与、或、非运算方便的解决实际问题
- 电脑进行二进制加减运算方法
- 二进制运算新发现