【发布时间】:2021-05-09 01:45:07
【问题描述】:
我正在尝试使用模运算符将整数转换为二进制。我得到了正确的数字,尽管它们的顺序不正确。例如 76 到二进制是 1001100 但输出是 0011001;因此,如果结果是0,我试图通过输出1 来纠正这个问题,如果结果是1,则输出0,使用if-else 语句;但是结果是1100110,这也是错误的。
这是我的代码:
include <iostream>
using namespace std;
int main() {
int num;
int remainder;
cout << "Enter a decimal number:" << endl;
cin >> num;
while (num != 0){
remainder = num % 2;
if (remainder == 1 ){
cout << remainder - 1;
}
else if (remainder == 0){
cout << remainder + 1;
}
num = num / 2;
}
return 0;
}
有什么建议吗?
【问题讨论】:
-
"我正在尝试将整数转换为二进制" 为什么?整数已经是二进制。您正在尝试将您的整数转换为二进制在另一个整数中的样子的十进制等价物......这里的最终目标是什么?为什么需要它而不是按原样使用 int 或将其粘贴在二进制字符串中?
-
@scohe001 我认为很明显 OP 想要 print 二进制值。
-
您需要颠倒数字的打印顺序,而不是交换 0 和 1。
-
如果你有
101010000并且想要反转它,那就是000010101翻转位是010100000,那不一样 -
把你的数字放在一个容器里!那么你有很多选项,这里有很多答案。