使用C語言查詢給定二進位制數的二進位制補碼
問題陳述
給定一個二進位制數,您必須編寫一個C語言程式來查詢給定二進位制數的二進位制補碼。
考慮以下示例:
示例
輸入如下:
輸入一個二進位制數: 10010001
輸出如下:
10010001 的反碼是 01101110
10010001 的補碼是 01101111
演算法
參考查詢給定二進位制數的二進位制補碼的演算法。
步驟 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 - 否則
步驟 5.2.1 - str[i] == ‘1’
步驟 5.3 - i: = i+1
步驟 6 - Mask: = 1
步驟 7 - 對於 i: = len-1 到 0 執行
步驟 7.1 - 如果 mask == 1 則
步驟 7.1.1 - 如果 str[i] == ‘1’ 則
步驟 7.1.1.1 - str[i]: = ‘0’
步驟 7.1.1.2 - mask: = 1
步驟 7.1.2 - 否則
步驟 7.1.2.1 - str[i]: = ‘1’
步驟 7.1.2.2 - mask: = 0
步驟 7.1.3 - 結束 if
步驟 7.2 - 結束 if
步驟 8 - 列印二進位制補碼。
步驟 9 - 停止。
查詢給定二進位制數的二進位制補碼的 C 程式
以下是查詢給定二進位制數的二進位制補碼的 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
",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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP