gpt4 book ai didi

c - 对十进制输入进行二进制运算

转载 作者:行者123 更新时间:2023-11-30 19:34:48 27 4
gpt4 key购买 nike

我正在为一个学校项目使用 C 语言创建一个二进制计算器,但无法获得正确的答案。

赋值指定我只能从用户读取和打印无符号整数,并且不能使用循环,因此我创建了一个变量,将二进制输入转换为十进制,然后对这些十进制数应用运算符。

代码:

case 1:
printf_s("Input a binary number and decimal shifting in the following format: 8-bit dec\n");
scanf_s("%u %u", &b1, &b2);
/*conversion of binary to decimal*/
result1 = (b1 % 10) + (b1 / 10 % 10) * 2 + (b1 / 100 % 10) * 4 + (b1 / 1000 % 10) * 8 + (b1 / 10000 % 10) * 16 + (b1 / 100000 % 10) * 32 + (b1 / 1000000 % 10) * 64 + (b1 / 10000000 % 10) * 128;

printf_s("\nThe result is %u\n", result1 << b2);
break;

我遇到的问题是,当我输入例如 001111003 时,程序显然不知道如何处理额外的 1 我得到了错误的答案。

最佳答案

您似乎对“可以”使用的内容有各种奇怪的限制,这使得这是一场猜谜比赛。

无论如何,要将十进制数限制为一定位数,您可以使用模数:

b1 %= 100000000;

这将删除任何超过 10,000,000 的部分,将其限制为 8 位十进制数字,然后您可以将其解释为二进制位。

关于c - 对十进制输入进行二进制运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43366321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com