*阵我已经是如何将十进制数组转换为二进制数的数组?
int array{9} = { 2 ,2, 10 , 3 , 1, 15, 12, 6 ,1};
我想,转变为二进制数组,这应该是像我使用
int array2[35]= {0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,0, 0, 1, 1, 0, 0, 0, 1};
代码是:
double decimal2Binary(long m)
{
int remainder;
long binary = 0, i = 1;
while(m != 0)
{
remainder = m%2;
m = m/2;
binary= binary + (remainder*i);
i = i*10;
}
return binary;
}
问题是,当我转换2为二进制时,输出为10但我希望它是0010同样地,对于7它在适当的位置0111。 什给予111否则我需要去做。请帮助*
如果你想要一个二进制数字的文本表示,那你为什么要返回一个'double'而不是'std :: string'? – user2079303
您正在将一个数字“转换”为另一个数字,该数字在以十进制写入时包含与以二进制写入时原始数字包含的数字相同的数字。也就是说,你将两个“转换”成十个,七个变成一百一十一个。如果您想要一个数字序列,请使用数组或其他集合。 – molbdnilo
从启用编译器警告开始。返回一个'double',认真?发布编译的实际代码。 – Lundin