2s-komplementet i C genereres fra 1s-komplementet i C. Som vi vet at 1s-komplementet til et binært tall skapes ved å transformere bit 1 til 0 og 0 til 1; 2s-komplementet til et binært tall genereres ved å legge en til 1s-komplementet til et binært tall.
Kort oppsummert kan vi si at 2s-komplementet i C er definert som summen av ens komplement i C og en.
I figuren ovenfor er det binære tallet lik 00010100, og dets ens komplement beregnes ved å transformere biten 1 til 0 og 0 til 1 omvendt. Derfor blir ens komplement 11101011. Etter å ha beregnet ens komplement, beregner vi de tos komplement ved å legge til 1 til ens komplement, og resultatet er 11101100.
La oss lage 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]="