使用C语言找到给定二进制数的2的补码

使用c语言找到给定二进制数的2的补码

考虑下面给出的示例 –

示例

输入如下:

输入二进制数: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<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:110011101's complement of 11001110 is 001100012's complement of 11001110 is 00110010

以上就是使用C语言找到给定二进制数的2的补码的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 21:30:02
下一篇 2025年12月17日 21:30:25

相关推荐

发表回复

登录后才能评论
关注微信