首頁 > 後端開發 > C++ > 主體

給定一個數,找到它的二進制補碼的C程序

PHPz
發布: 2023-09-18 09:17:05
轉載
714 人瀏覽過

給定一個數,找到它的二進制補碼的C程序

给定二进制数的补码可以通过两种方法计算,如下 -

  • 方法 1 − 将给定的二进制数转换为补码,然后加 1。

  • 方法 2 − 从 Least 开始设置的第一个位后面的尾随零有效位 (LSB),包括保持不变的一位,其余全部应补码。

对于给定的二进制数查找二进制补码的逻辑如下 -

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

",num, two);

登入後複製

从给定的二进制数中找到补码的逻辑是 −

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

",num, one);

登入後複製

示例

以下是查找给定数字的补码的 C 程序 -

 现场演示

#include
#include
#define SIZE 8
int main(){
   int i, carry = 1;
   char num[SIZE + 1], one[SIZE + 1], two[SIZE + 1];
   printf("Enter the binary number

"); 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

",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

",num, two); return 0; }

登入後複製

输出

当执行上述程序时,会产生以下结果 -

Enter the binary number
1000010
Ones' complement of binary number 1000010 is 0111101
Two's complement of binary number 1000010 is 0111110
登入後複製

以上是給定一個數,找到它的二進制補碼的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!