Maison >développement back-end >C++ >Ajouter deux nombres non signés à l'aide d'opérations au niveau du bit en C++
Un nombre non signé représenté sous forme de flux binaire écrit sous forme binaire. La forme binaire de
54 est 110110.
Pour ajouter deux nombres à l'aide de bits, nous les ajouterons sous forme binaire en utilisant la logique d'addition binaire. La règle de l'addition de
bits est -
Prenons un exemple, En additionnant deux nombres,
Input: a = 21 (10101) , b = 27 (11011) Output: 48 (110000)
Explication - 10101 + 11011 = 110000. Nous ajouterons des bits en commençant par le bit le moins significatif. Ensuite, passez à la personne suivante.
#include <bits/stdc++.h> #define M 32 using namespace std; int binAdd (bitset < M > atemp, bitset < M > btemp){ bitset < M > ctemp; for (int i = 0; i < M; i++) ctemp[i] = 0; int carry = 0; for (int i = 0; i < M; i++) { if (atemp[i] + btemp[i] == 0){ if (carry == 0) ctemp[i] = 0; Else { ctemp[i] = 1; carry = 0; } } else if (atemp[i] + btemp[i] == 1){ if (carry == 0) ctemp[i] = 1; else{ ctemp[i] = 0; } } else{ if (carry == 0){ ctemp[i] = 0; carry = 1; } else{ ctemp[i] = 1; } } } return ctemp.to_ulong (); } int main () { int a = 678, b = 436; cout << "The sum of " << a << " and " << b << " is "; bitset < M > num1 (a); bitset < M > num2 (b); cout << binAdd (num1, num2) << endl; }
The sum of 678 and 436 is 1114
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!