如何将int数组转换为每个数组的二进制值的二维数组?

时间:2017-03-29 23:21:15

标签: c++

您好我试图找到数组中每个元素的二进制值并将其设置为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行,但我不知道剩下的是什么。 有人可以帮我解决这个问题。并给我解释为什么会发生这种情况或链接到解释。

1 个答案:

答案 0 :(得分:2)

你的最后一个for循环(打印的那个)应该只有i<3作为它的条件。现在允许i转到7,但是d[i][j]超出界限并打印垃圾。