2'er komplementet i C genereres ud fra 1'er komplementet i C. Som vi ved, er 1'er komplementet af et binært tal skabt ved at transformere bit 1 til 0 og 0 til 1; 2s komplementet af et binært tal genereres ved at lægge en til 1s komplementet af et binært tal.
Kort sagt kan vi sige, at 2s komplementet i C er defineret som summen af ens komplement i C og et.
I ovenstående figur er det binære tal lig med 00010100, og dets ens komplement beregnes ved at transformere bit 1 til 0 og 0 til 1 omvendt. Derfor bliver ens komplement 11101011. Efter at have beregnet ens komplement, beregner vi de tos komplement ved at lægge 1 til ens komplement, og dets resultat er 11101100.
Lad os oprette et program med 2s komplement.
#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]="