המשלים 2s ב-C נוצר מהמשלים 1s ב-C. כפי שאנו יודעים כי משלים 1s של מספר בינארי נוצר על ידי הפיכת סיביות 1 ל-0 ו-0 ל-1; משלים 2s של מספר בינארי נוצר על ידי הוספת אחד למשלים 1s של מספר בינארי.
בקיצור, אפשר לומר שהמשלים של 2 ב-C מוגדר כסכום של המשלים של האחד ב-C ו-1.
באיור שלמעלה, המספר הבינארי שווה ל-00010100, וההשלמה של האחד שלו מחושבת על ידי הפיכת הביט 1 ל-0 ו-0 ל-1 להיפך. לכן, המשלים של אחד הופך ל-11101011. לאחר חישוב ההשלמה של אחד, אנו מחשבים את ההשלמה של השניים על ידי הוספת 1 להשלמה של האחד, והתוצאה שלו היא 11101100.
בואו ניצור תוכנית של 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]="