二进制的加法减法运算

一、二进制的加法
对于十进制加法:9+1,进位变10

对于二进制加法也需要进位

例1
此时的a,b是整型提升后的结果,此处只为讲解二进制的加法运算。
a和b进行相加 变为c
a:00000000000000000000000000000011
b:00000000000000000000000001111111
c: 00000000000000000000000010000010

从右向左1+1,为2,余0进1,变为0
进1后,1+1+1,为3,余1进1,变为1
进1后,0+1+1,为2,余0进1,变为0
进1后,0+1+1,为2,余0进1,变为0
进1后,0+1+1,为2,余0进1,变为0
进1后,0+1+1,为2,余0进1,变为0
进1后,0+1+1,为2,余0进1,变为0
进1后,0+0+1,为1,变为1

例2 两个八位二进制进行相加,要8位的结果
因为都是8位所以可以直接运算
若是一个8位+一个3位
需要将3位的二进制位,前面补上5个0,变成8位。

11001101
+10001001
——————
101010110
因为要8位的结果,所以左边多出的一位不要
最终等于 01010110

二、二进制的减法
(二进制的减法运算也可以等于加法运算,计算机一般只进行加法运算,他将乘法除法都变为了加法运算,本质上,乘法是加法运算,除法是减法运算)

例1 八位二进制 减 3位二进制,要8位的结果
1010010 - 110
将3位二进制补0凑够八位
110 变为 00000110

10100010
-00000110
——————
因为刚才学了加法运算,此处将减法运算变为加法运算

10100010 +(-00000110)

(知识点复习)
原码
整数最高位表示符号位,-1为负数
最高位为1 表示(负数),最高位为0 表示(正数)
10000000000000000000000000000001 且整形有32个比特位。
最高位的1表示符号位(这串十进制的值为-1)

整数在内存中存的是 补码~ 一个整数的二进制表示有三种:
1:原码
2:反码
3:补码
正整数: 原码、反码、补码、相同(三者一样)
原码 取反 +1得到补码
补码 -1得反码 反码取反得到源码

此处不可以直接将 (-00000110)的最高位从0变为1直接去掉符号
变为负数,不是只改变最高位的符号位那么简单

方法1:为得到他的负数求补码
将二进制的(00000110)

变为反码
其他位按位取反(1变成0,0变成1。)
11111001

反码+1得到补码
11111001
加--------1
——————
11111010
这个补码才相当于他的负数

方法2:为得到他的负数求补码
对于00000110
保留最右边的10,其余位全部按位取反
变为11111010

二进制的负数,要为补码,为得到其补码
其实就是要保留最右边的二进制数1后二进制1右边的数字,其他的位按位取反,从而快速的得到补码进行减法运算

10100010 +(-00000110)
变为
10100010 + 11111010

10100010
+11111010
——————
110011100
因为要8位,所以最高位抹去
变为
10011100

例3 求 -1101的补码
方法1
首先将4位的二进制数变为 8位二进制数
-00001101
求反码
11110010
再+1
变为
11110010
加--------1
——————
11110011

方法2
00001101
保留最右边的1,以及1右边的数字
因为最右边的1右边的数字不存在,所以只保留1
其余位按位取反
11110011

例4某题中补码 减1变为反码
10000010 - 1
10000010 - 00000001
10000010 +(-00000001)

-00000001变为补码过程
00000001 反码:11111110
反码+1 为补码:11111111

10000010
+11111111
——————
110000001

最终反码变为: 110000001

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值