二进制的计算(原码补码以及反码)
Posted _WILLPOWER_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制的计算(原码补码以及反码)相关的知识,希望对你有一定的参考价值。
带符号
5-2
0000 0101 -> 5
1000 0010 ->-2
然后两个数据都转为补码进行相加
正数的补码等于原码
负数的补码等于符号位不变,剩下的取反加一(算补码的时候符号位不参与计算)
0000 0101 + (加法需要符号位参与)
1111 1110
结果为
0000 0011 -> 3
因为结果为正数,所以不用再符号位不变取反加一
2-5
0000 0010 -> 2
1000 0101 ->-5
然后两个数据都转为补码进行相加
正数的补码等于原码
负数的补码等于符号位不变,剩下的取反加一(算补码的时候符号位不参与计算)
0000 0010 + (加法需要符号位参与)
1111 1011
结果为
1111 1101
因为结果为负数,所以需要符号位不变取反加一(不需要符号位参与)
结果为:1000 0010 ->-3
127+1
0111 1111 -> 127
0000 0001 ->1
然后两个数据都转为补码进行相加
正数的补码等于原码
负数的补码等于符号位不变,剩下的取反加一(算补码的时候符号位不参与计算)
0111 1111 + (加法需要符号位参与)
0000 0001
结果为
1000 0000
规定1000 0000是-128 ! 所以结果是-128
127+2
0111 1111 -> 127
0000 0010 ->2
然后两个数据都转为补码进行相加
正数的补码等于原码
负数的补码等于符号位不变,剩下的取反加一(算补码的时候符号位不参与计算)
0111 1111 + (加法需要符号位参与)
0000 0010
结果为
1000 0001
因为结果为负数,所以需要符号位不变取反加一(==不需要符号位参与)
结果为
1111 1111所以是-127
127+127
0111 1111 -> 127
0111 1111 ->127
然后两个数据都转为补码进行相加
正数的补码等于原码
负数的补码等于符号位不变,剩下的取反加一(算补码的时候符号位不参与计算)
0111 1111 + (加法需要符号位参与)
0111 1111
结果为
1111 1110
因为结果为负数,所以需要符号位不变取反加一(不需要符号位参与)
结果为
1000 0010所以是-2
以上是关于二进制的计算(原码补码以及反码)的主要内容,如果未能解决你的问题,请参考以下文章