使用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