ShwStone @ 2021-10-18 20:43:31
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
while (b) {
a ^= b;
b = ((a ^ b) & b) << 1;
}
cout << a << endl;
return 0;
}
这么写是可以过的,就是当有负数的时候要执行将近32次,哪位大佬测一下是这个快还是a+b快。
另外本蒟蒻突发奇想,觉得可以用类似的算法利用bitset
写高精度,但是不会输出,各位大佬帮我想一想叭。
by int64 @ 2021-10-18 21:05:23
位运算太毒瘤了 /kk
by YLiF4 @ 2021-11-10 15:58:52
输出的话可以参考double dabble算法
by YLiF4 @ 2021-11-10 15:59:58
bitset实现的高精度其实似乎效率不高(也可能我写的不好)