首頁 >後端開發 >C++ >使用C語言找到給定二進制數的2的補碼

使用C語言找到給定二進制數的2的補碼

PHPz
PHPz轉載
2023-09-05 15:21:061248瀏覽

使用C語言找到給定二進制數的2的補碼

考慮下面給出的範例-

範例

#輸入如下:

輸入二進位數:10010001

輸出如下:

#1 對10010001 的補碼是01101110

2 對10010001 的補碼是01101111

演算法

參考一種演算法來找出給定二進制數的2'c 補數。

第 1 步 - 開始。

第 2 步 - 閱讀運行時的二進位數。

第 3 步 - 將二進制數複製到 strdp。

第4 步- len: = strlen(str)

第5 步- 對於i = 0 到len-1 執行

     步驟5.1 - 如果str[i] == '1' 則

        步驟5.1.1 - str[i] == '0'

     步驟5.2 - 否則

   ] == '1'

     步驟5.3 - i: = i 1

     步驟5.3 - i: = i 1

p>

第6 步驟- 掩蔽碼:= 1

第7 步驟- 對於i: = len-1 到0 執行

     步驟7.1 - 如果遮罩== 1 則 p>

        步驟7.1.1 − 若str[i] == '1' 則

           步驟7.1.1.1 − str[i]: = '0'

           步驟7.1.

##           步驟7.1.

## :

     步驟7.1.2 − else

        步驟7.1.2.1 − str[i]: = '1'

        步驟#7.1.2.2 -

#        步驟#7.1.2.2 -

     步驟7.1.3 - 結束if

     步驟7.2 - 結束if

步驟8 - 列印2 的補碼。

第 9 步 - 停止。

程式

以下是C 程序,用於尋找給定二進位數的2'c 補碼

-

 現場示範

#include <string.h>
#include<stdio.h>
main(){
   char str[32],strdp[32];
   int mask,i;
   printf("Enter a binary number:");
   scanf("%s",str);
   strcpy(strdp,str);
   for(i=0;i<strlen(str);i++) /* computing 1&#39;s complement */{
      if(str[i]==&#39;1&#39;)
         str[i]=&#39;0&#39;;
      else
         str[i]=&#39;1&#39;;
   }
   printf("1\&#39;s complement of %s is %s</p><p>",strdp,str);
   mask=1;
   for(i=strlen(str)-1;i>=0;i--){
      if(mask==1){
         if(str[i]==&#39;1&#39;){
            str[i]=&#39;0&#39;;
            mask=1;
         }
         else{
            str[i]=&#39;1&#39;;
            mask=0;
         }
      }
   }
   printf("2\&#39;s complement of %s is %s",strdp,str);
}

輸出

當執行上述程式時,會產生以下結果-
Enter a binary number:11001110
1&#39;s complement of 11001110 is 00110001
2&#39;s complement of 11001110 is 00110010
###

以上是使用C語言找到給定二進制數的2的補碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除