您好我试图找到数组中每个元素的二进制值并将其设置为2d数组。 这是我的代码:
#include <iostream>
void tobin(int a,int b[]);
int main()
{
int i,j;
int b[8];//bin array
int d[3][8]; //2d array
int c[3] = {6,15,24}; //int array
//My code for transformation from array to 2d array
for(i=0;i<3;i++)
{
tobin(c[i],b);
for(j=0;j<8;j++)
{
d[i][j]=b[j];
}
}
//Printing of 2d array
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
std::cout<<d[i][j];
std::cout<<std::endl;
}
}
//Function for convert int to bin
void tobin(int a,int b[])
{
int i;
for(i=0;i<8;i++)
{
b[i]=a%2;
a/=2;
}
}
这是我的输出:
01100000
11110000
00011000
00-16437331793270200193648149632765
014196397000-640061051-1985511146
419616001936481488327650000
16416403251985832910-46743922719940467470000
004196848019364814963276510
我正在寻找前3行,但我不知道剩下的是什么。 有人可以帮我解决这个问题。并给我解释为什么会发生这种情况或链接到解释。
答案 0 :(得分:2)
你的最后一个for循环(打印的那个)应该只有i<3
作为它的条件。现在允许i
转到7,但是d[i][j]
超出界限并打印垃圾。