这是我将十进制转化成二进制的的代码,最后可以输出0和1,但是与实际的二进制是反的,所以我想要将这个数组里面的元素对调输出,求大家帮我补上对调的代码并能够在我的代码里面运行!
附:
#include<iostream.h>
void main()
{
int x;int y;char a[100];//因为数组括号内不能区变量,我暂时弄个100个的,后面会有个删除多余的代码
cin>>x;int i=0;
do{
if(x%2==0)
a[i]=48;
else
a[i]=49;
i++;
y=x/2;
x=y;}
while (y!=0);
a[i]='\0';//这样就把多余的删除了
cout<<a<<endl;
}//如我输入的十进制是8,则输出的二进制是0001,而我想要1000,求大家帮我弄下啊,谢谢了
那样会把0和1全部改成反的。。。如果是8,那就输出1110了。。。。
追答不好意思,理解错了
可以计算0和1的个数的,因为有结束字符,就可以用strlen计算0和1的字符总长度了。然后头尾交换,一直交换到中间位置就可以了。
大致是这样的:
n = strlen(a);
for(int i = 0;i < n/2;i++)
{
temp = a[i];
a[i] = n-i;
a[n-i] = temp;
}