UVa 10469
題目
http://domen111.github.io/UVa-Easy-Viewer/?10469
有個人在學如何用位元運算進行 32-bit 正整數的加法,但是他搞砸了
現在他設計出來的程式不能進位,請你嘗試設計出跟他一樣的加法器
想法
我們可以考慮兩種情況
- 原本需要進位
- 原本不需要進位
如果說原本就需要進位,那就表示在二進位底下兩個 bit 都是 $1$,既然不進位,那這個位置最後會留下 $0$,而下一位不會 $+1$
反之,如果原本就不需要進位的話,那就直接相加即可
也就是說,考慮兩個 bit 的情況,整理如下表
1 | 0 | |
---|---|---|
1 | 0 | 1 |
0 | 1 | 0 |
發現到這跟 xor 就是一樣的道理
Code
1 | //By Koios1143 |