El complement 2s en C es genera a partir del complement 1s en C. Com sabem que el complement 1s d'un nombre binari es crea transformant el bit 1 a 0 i 0 a 1; el complement 2s d'un nombre binari es genera afegint un al complement 1s d'un nombre binari.
En resum, podem dir que el complement 2s en C es defineix com la suma del complement a un en C i un.
A la figura anterior, el nombre binari és igual a 00010100 i el seu complement únic es calcula transformant el bit 1 a 0 i 0 a 1 viceversa. Per tant, el complement a un passa a ser 11101011. Després de calcular el complement a un, calculem el complement a dos afegint 1 al complement a un, i el seu resultat és 11101100.
Creem un programa de complement 2s.
#include int main() { int n; // variable declaration printf('Enter the number of bits do you want to enter :'); scanf('%d',&n); char binary[n+1]; // binary array declaration; char onescomplement[n+1]; // onescomplement array declaration char twoscomplement[n+1]; // twoscomplement array declaration int carry=1; // variable initialization printf(' Enter the binary number : '); scanf('%s', binary); printf('%s', binary); printf(' The ones complement of the binary number is :'); // Finding onescomplement in C for(int i=0;i<n;i++) { if(binary[i]="='0')" onescomplement[i]="1" ; else } onescomplement[n]="