按正确顺序从十进制转换为二进制 我是C++中的一个完整的NoB,我们必须在学校里做一个程序,计算一个数的和和然后把这个数转换成二进制数。
我现在的问题是二进制数的顺序是相反的。 我想将数字添加到一个数组中,然后从右向左变换数组,但我不知道如何操作:/ 有人能给我解释一下/示范一下怎么做吗 我使用do while循环,因为这是任务的要求按正确顺序从十进制转换为二进制 我是C++中的一个完整的NoB,我们必须在学校里做一个程序,计算一个数的和和然后把这个数转换成二进制数。,c++,arrays,C++,Arrays,我现在的问题是二进制数的顺序是相反的。 我想将数字添加到一个数组中,然后从右向左变换数组,但我不知道如何操作:/ 有人能给我解释一下/示范一下怎么做吗 我使用do while循环,因为这是任务的要求 int main() { int digit, sum = 0, rem; cout<<"Enter a positive digit" << endl; cin >> digit; do { sum= sum
int main()
{
int digit, sum = 0, rem;
cout<<"Enter a positive digit" << endl;
cin >> digit;
do {
sum= sum + (digit%10);
digit /= 10;
}
while (digit!= 0);
cout <<"Cross sum" << sum << endl;
do {
rem = sum % 2;
sum /= 2;
cout << "Decimal in Binary: " << rem << endl;
}
while(sum>0);
return 0;
}
intmain()
{
整数位数,和=0,rem;
cout此函数将按正确顺序将十进制打印为二进制:
void decToBin(int n) {
if (n == 0) {
return;
}
decToBin(n / 2);
cout << n % 2;
}
void decToBin(int n){
如果(n==0){
返回;
}
德克托宾(n/2);
cout此函数将按正确顺序将十进制打印为二进制:
void decToBin(int n) {
if (n == 0) {
return;
}
decToBin(n / 2);
cout << n % 2;
}
void decToBin(int n){
如果(n==0){
返回;
}
德克托宾(n/2);
coutdigit
已经是二进制的。这里没有十进制。任何十进制到二进制的转换都已经由cin>>digit执行;
@user207421如果和
为6,OP想要输出“110”,但得到的是“011”-这就是他所说的“二进制”。你也按错误的顺序打印二进制数。一种方法是使用下面代码开始的递归建议。@JonasByström-你说“你也按错误的顺序打印二进制数”是什么意思?二进制数的顺序错误是OP问题的关键。数字
已经是二进制的。这里没有十进制。任何十进制到二进制的转换都已经由cin>>数字执行;
@user207421如果和
为6,OP想要输出“110”,但得到的是“011”-这就是他所说的“二进制”的意思。你也可以按错误的顺序打印二进制数。一种方法是使用下面code start的递归建议。@JonasByström-你说“你也按错误的顺序打印二进制数”是什么意思?二进制数以错误的顺序出现这一事实是OP问题的关键。您可能希望使用右移运算符>>
和二进制和运算符&
。比余数和除法的效率高出许多倍(不过编译器可能会识别模式并进行优化)。您可能希望使用右移运算符>>
和二进制和运算符&
。其效率比余数和除法高出许多倍(不过编译器可能会识别模式并进行优化)。