如何将值从十进制存储为二进制,使其在 C++ 中将值保存在 6 位

how to store value from decimal to binary in such a way that it save value in 6 places in c++

本文关键字:C++ 保存 存在 十进制 存储 二进制      更新时间:2023-10-16

我必须将值从 1 转换为 63(十进制到二进制(,以便它存储在表中的 6 位。 例如,如果我输入 2,它会将其转换为二进制:10 ,但我希望它在 6 位显示它,例如 000010。并将其存储在表中。 我找不到将十进制转换为二进制并显示 6 位的代码。我该怎么办...??

#include <iostream> 
using namespace std;  
int main()  
{  
int a[10], n, i;    
cout<<"Enter the number to convert: ";    
cin>>n;    
for(i=0; n>0; i++)    
{    
a[i]=n%2;    
n= n/2;  
}    
cout<<"Binary of the given number= ";    
for(i=i-1 ;i>=0 ;i--)    
{    
cout<<a[i];    
}    
} 

我试过这个,但我把它转换成指定的位,比如在 10 中转换 2,在 11 中转换 3,但我想将其转换为 3=000011。

所以解决问题的一种方法是:首先,用零初始化 6 个元素的数组......

此外,您不必使用 10 的数组,因为您清楚地提到数字是 1 到 63

int a[6], n, i;

因此,您可以在输入之前添加此内容1

for (i = 0; i < 6; i++) {
a[i] = 0;
}

现在你运行的循环对我这个程序员来说没有多大意义,尽管我知道这是正确的......因为条件在n但增量在i.所以我会这样改变它

while (n > 0) {
a[i] = n % 2;
n = n / 2;
i++;
}

并将i-1更改为 5(或 MAX_CAP - 1;其中 MAX_CAP 为 6(

for(i=5 ;i>=0 ;i--)    
{    
cout<<a[i];    
}  

但是根据我的说法,您应该使用向量而不是数组来摆脱初始化

vector<int> a(6,0);