考虑下面给出的示例 –
示例
输入如下:
输入二进制数:10010001
输出如下:
立即学习“C语言免费学习笔记(深入)”;
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 – 否则
步骤 5.2.1 – str[i] == ‘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.1.2 − mask: = 1
步骤 7.1.2 − else
步骤 7.1.2.1 − str[i]: = ‘1’
步骤7.1.2.2 – 掩码:= 0
步骤 7.1.3 – 结束 if
步骤 7.2 – 结束 if
步骤 8 – 打印 2 的补码。
第 9 步 – 停止。
程序
以下是 C 程序,用于查找给定二进制数的 2’c 补码 –
现场演示
#include #includemain(){ char str[32],strdp[32]; int mask,i; printf("Enter a binary number:"); scanf("%s",str); strcpy(strdp,str); for(i=0;i",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:110011101's complement of 11001110 is 001100012's complement of 11001110 is 00110010
登录后复制
以上就是使用C语言找到给定二进制数的2的补码的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2583680.html