2s-komplementet i C genereras från 1s-komplementet i C. Som vi vet skapas 1s-komplementet av ett binärt tal genom att transformera bit 1 till 0 och 0 till 1; 2s-komplementet av ett binärt tal genereras genom att addera ett till 1s-komplementet av ett binärt tal.
Kortfattat kan vi säga att 2s-komplementet i C definieras som summan av ettans komplement i C och ett.
I figuren ovan är det binära talet lika med 00010100, och dess etta-komplement beräknas genom att transformera biten 1 till 0 och 0 till 1 vice versa. Därför blir ens komplement 11101011. Efter att ha räknat ut ens komplement beräknar vi de tvås komplement genom att lägga till 1 till ettans komplement, och dess resultat är 11101100.
Låt oss skapa ett 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]="