Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình tìm phần bù của hai cho một số nhất định

Phần bù của hai cho một số nhị phân nhất định có thể được tính theo hai phương pháp như sau -

  • Phương pháp 1 - Chuyển đổi số nhị phân đã cho thành phần bù của một và sau đó, thêm 1.

  • Phương pháp 2 - Số 0 ở cuối sau bit đầu tiên được đặt từ Bit ít quan trọng nhất (LSB), bao gồm một bit không thay đổi và tất cả còn lại nên được bổ sung.

Logic để tìm hai phần bổ sung cho một số nhị phân nhất định như sau -

for(i = SIZE - 1; i >= 0; i--){
   if(one[i] == '1' && carry == 1){
      two[i] = '0';
   }
   else if(one[i] == '0' && carry == 1){
      two[i] = '1';
      carry = 0;
   } else {
      two[i] = one[i];
   }
}
two[SIZE] = '\0';
printf("Two's complement of binary number %s is %s\n",num, two);

Logic để tìm kiếm sự bổ sung của một người từ một số nhị phân nhất định là -

for(i = 0; i < SIZE; i++){
   if(num[i] == '0'){
      one[i] = '1';
   }
   else if(num[i] == '1'){
      one[i] = '0';
   }
}
one[SIZE] = '\0';
printf("Ones' complement of binary number %s is %s\n",num, one);

Ví dụ

Sau đây là chương trình C để tìm phần bù của hai cho một số nhất định -

#include<stdio.h>
#include<stdlib.h>
#define SIZE 8
int main(){
   int i, carry = 1;
   char num[SIZE + 1], one[SIZE + 1], two[SIZE + 1];
   printf("Enter the binary number\n");
   gets(num);
   for(i = 0; i < SIZE; i++){
      if(num[i] == '0'){
         one[i] = '1';
      }
      else if(num[i] == '1'){
         one[i] = '0';
      }
   }
   one[SIZE] = '\0';
   printf("Ones' complement of binary number %s is %s\n",num, one);
   for(i = SIZE - 1; i >= 0; i--){
      if(one[i] == '1' && carry == 1){
         two[i] = '0';
      }
      else if(one[i] == '0' && carry == 1){
         two[i] = '1';
         carry = 0;
      }
      else{
         two[i] = one[i];
      }
   }
   two[SIZE] = '\0';
   printf("Two's complement of binary number %s is %s\n",num, two);
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter the binary number
1000010
Ones' complement of binary number 1000010 is 0111101
Two's complement of binary number 1000010 is 0111110