考慮下面給出的範例-
#輸入如下:
輸入二進位數: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's complement */{ if(str[i]=='1') str[i]='0'; else str[i]='1'; } printf("1\'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]=='1'){ str[i]='0'; mask=1; } else{ str[i]='1'; mask=0; } } } printf("2\'s complement of %s is %s",strdp,str); }
Enter a binary number:11001110 1's complement of 11001110 is 00110001 2's complement of 11001110 is 00110010###
以上是使用C語言找到給定二進制數的2的補碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!