位运算实现加减法

2022-03-18 02:44:24 来源:网络整理 作者:管理员

原标题:位运算实现加减法

主题:位运算实现加减法

目标:讲清楚两种算法的实现;刻意练习:教程,细致完整

目标读者:了解基本位运算,并能读懂java代码的人

# 位运算实现加减乘除

计算机底层的加减乘除就是由位运算实现的。

理解它们,可以帮助我们更好的理解特有的现象,比如为什么整形除以整形的结果也是整形。

今天时间有限,只能先来加减了。

## 加法

异或运算,相当于无进位相加。

0^1=1,0+1=1

0^0=0,0+0=0

1^1=0,1+1=2,二要进一,所以是10,原位置上还是0,就相当于把进位信息给抹去了。

既然进位信息被抹去了,就要想办法把进位信息加回来。

0101

0011

&

0001

两个数字与运算,得到的结果相当于记录了进位信息,因为只有两个数字都是1的时候,结果才是1。也只有两个数字都是1的时候,相加才用进位。

但进位信息的位置不对,要往前移一位,也就是左移。

所以,进位信息的最终结果为:0001<<1=0010。

把无进位相加的结果加上进位信息,就是最终加法的结果。

而且,当进位信息为0的时候,无进位相加^0=进位相加。

所以,我们的目标就是一直重复上面的操作,直到进位信息变成0。

我们拿上面的两个数当例子。

一、异或

0101

0011

^

0110

二、与运算,并左移一位

上面算过了,结果是

0010

三、一二步结果,异或

0110

0010

^

0100

四、一二步结果,与运算,并左移一位

0110

0010

&

0010

<<1

0100

五、三四步结果,异或

0100

0100

^

0000

六、三四步结果,与运算,并左移一位

0100

0100

&

0100

<<1

1000

七、五六步结果,异或

0000

1000

^

1000

八、五六步结果,与运算,并左移一位

0000

1000

&

0000

<<1

0000

好,这时候,进位信息为零了。那第七步的结果就是结果。

不放心的话,还可以再拿第七步和第八步的结果再异或一下。

1000

0000

^

1000

按照之前的推理,无进位相加^0=进位相加。

即a^0=a+0,所以,任何数和零异或都会等于它本身。

验算一下结果,确实是没错的。

0101(5)

0011(3)

+

1000(8)

接下来上代码:

```java

public static int add(int a, int b) {

int result = 0;

while (b != 0) {

result = a ^ b;

b = (a & b) << 1;

a = result;

}

return result;

}

```

## 减法

a+b=a+(-b),所以减法可以延用加法的逻辑。

只需要多取一个相反数就好了。

相反数的位运算为,取反+1。

上代码

```java

public static int oppositeNumber(int num) {

return add(~num, 1);

}

public static int minus(int a, int b) {

return add(a, oppositeNumber(b));

}

```

字数:不统计

耗时:1小时30分

··················END··················

显示全文
为您推荐
冷水江市景点
冷水江市景点

【导读】 冷水江市景点,下面是小编为你收集整理的,希望对你有帮助!1、大乘山风景名胜区:位于市境东南,属雪峰山大乘山余脉。景区包括大乘山、祖师岭、鸿云崖、太阳岛等景点。2、资江旅游度假区:位于老城区,是一个集演艺、山地养老、水上娱乐、生态休闲、沙滩运动等于一体的三产......

发布时间:2023-10-09 11:01:05

通天龙图片
通天龙图片

【导读】 通天龙图片,下面是小编为你收集整理的,希望对你有帮助!通天龙在中国,发现恐龙化石最多是辽宁,这里目前发现了35种恐龙,发现恐龙最少的是西藏、安徽、江西等地。而在最近,江西又发现了一种新恐龙化石,它被专家命名为通天龙,接下来就随小编一起去了解看看。通天龙基......

发布时间:2023-10-09 10:01:05

北京国贸是哪个区
北京国贸是哪个区

【导读】 北京国贸是哪个区,下面是小编为你收集整理的,希望对你有帮助!北京国贸在朝阳区,位于二环外,三环路边,在北京的东边,是一个国际商务中心,具有办公、会展、酒店、居住及文化娱乐,金融、保险、电信、信息咨询的功能。北京国贸的全称是北京国贸大厦(Chinabeijing......

发布时间:2023-10-09 09:01:04

佛山南庄属于哪个区
佛山南庄属于哪个区

【导读】 佛山南庄属于哪个区,下面是小编为你收集整理的,希望对你有帮助!佛山南庄属于禅城区。南庄镇位于佛山市禅城区西部,是佛山市中心城区的重要组成部分。南庄村位于乡政府驻地西稍北5.2千米处,人口173户、801人。明代以姓建村名。南庄村有间三虎实木家具厂,“三虎”牌家具......

发布时间:2023-10-09 08:01:04

“春捂”的正确打开方式是什么?不是简简单单穿厚就行了
“春捂”的正确打开方式是什么?不是简简单单穿厚就行了

【导读】 “春捂”的正确打开方式是什么?不是简简单单穿厚就行了,下面是小编为你收集整理的,希望对你有帮助!随着天气转暖了,春季已经走来了。都说:春捂秋冻,就表面看意思就是到了春季,虽然天气转暖了,但是衣服还是不能穿少了,要捂一捂,不然容易体寒生病。但是肯定有人会说,衣服确实没有减少,但是仍然体寒生病。其实......

发布时间:2023-10-09 07:01:05

鹅蛋煮多久能煮熟
鹅蛋煮多久能煮熟

【导读】 鹅蛋煮多久能煮熟,下面是小编为你收集整理的,希望对你有帮助!10分钟左右。鹅蛋凉入锅中煮十分钟左右即可食用,冷水煮鹅蛋其蛋清更佳滑嫩,用筷子夹鹅蛋,若能夹起不滑落,则说明鹅蛋已熟,反之未熟。鹅蛋中含有丰富的营养成分,如蛋白质、脂肪、矿物质和维生素等。1、鹅蛋中......

发布时间:2023-10-09 06:01:05

中国移动的最大老总boss是谁
中国移动的最大老总boss是谁

【导读】 中国移动的最大老总boss是谁,下面是小编为你收集整理的,希望对你有帮助!现任中国移动通信集团公司总裁、党组副书记、中国移动有限公司董事长兼CEO。出生于1949年,籍贯浙江温州,汉族,拥有浙江大学工学硕士学位和香港理工大学工商管理博士学位,教授级高级工程师。曾任中国联合通......

发布时间:2023-10-09 05:01:05

母鸡会变成公鸡吗
母鸡会变成公鸡吗

【导读】 母鸡会变成公鸡吗,下面是小编为你收集整理的,希望对你有帮助!母鸡有可能变成公鸡,母鸡的卵巢发生萎缩或退化后,则不再分泌雌性激素,但其体内还残留雄性性腺,这会分泌雄性激素,随着雄性激素水平大幅上升,鸡的外观也会发生改变。母鸡头小眼椭圆,嘴尖且硬,毛多而密又长,故......

发布时间:2023-10-09 04:01:05

猪肝汤的做法
猪肝汤的做法

【导读】 猪肝汤的做法,下面是小编为你收集整理的,希望对你有帮助!用料:猪肝400克、菠菜150克、料酒一勺、黑胡椒粉一勺、淀粉一勺。1、猪肝洗净切片,加入料酒、黑胡椒粉、淀粉,腌制半小时。2、菠菜切段焯水,猪肝焯水。3、热锅入油爆香葱末,加入一大碗清水煮沸,加入猪......

发布时间:2023-10-09 03:01:05

苹果电脑如何用键盘关机
苹果电脑如何用键盘关机

【导读】 苹果电脑如何用键盘关机,下面是小编为你收集整理的,希望对你有帮助!苹果电脑用键盘关机方法:同时住“option”加“command”加“电源键”三个组合快捷键就可以快速将苹果电脑关机。苹果电脑快捷键使用技巧如下:1、“Option”加“Command”加“A”,取消......

发布时间:2023-10-09 02:01:07

皮萨诺龙图片 介绍
皮萨诺龙图片 介绍

【导读】 皮萨诺龙图片 介绍,下面是小编为你收集整理的,希望对你有帮助!皮萨诺龙在恐龙时代,阿根廷是大型恐龙的乐园,世界上最大的恐龙阿根廷龙就生活在此。而除了这些巨大存在外,阿根廷也生活着许多小型恐龙,比如今天要介绍的皮萨诺龙,它体长仅一米,是一种小型食草恐龙,接下来一起......

发布时间:2023-10-09 01:01:06

怎么看苹果手机电池容量
怎么看苹果手机电池容量

【导读】 怎么看苹果手机电池容量,下面是小编为你收集整理的,希望对你有帮助!演示机型:Iphone 12系统版本:iOS14.41、打开手机,点击设置。2、找到隐私,点击打开。3、滑动屏幕到最下方,点击分析。4、点击分析数据。5、找到log-aggregated开头的文件打开......

发布时间:2023-10-09 00:01:06