Advertisement
Guest User

Untitled

a guest
Nov 8th, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int sum(int a, int b) {
  4.     int a_bit, b_bit, carry = 0, result=0;
  5.     for(int i=0; i<sizeof(int) * 8; i++) {
  6.         a_bit = (a >> i) & 1;
  7.         b_bit = (b >> i) & 1;
  8.         switch(a_bit + b_bit + carry) {
  9.         case 0:
  10.             result &= ~(1 << i); // clear
  11.             carry = 0;
  12.         break;
  13.         case 1:
  14.             result |= 1 << i; // set
  15.             carry = 0;
  16.         break;
  17.         case 2:
  18.             result &= ~(1 << i); // clear
  19.             carry = 1;
  20.         break;
  21.         case 3:
  22.             result |= 1 << i; // set
  23.             carry = 1;
  24.         }
  25.     }
  26.  
  27.     return result;
  28. }
  29.  
  30. int main() {
  31.     std::cout << sum(255, 3) << std::endl;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement