如何将 int 数组转换为每个数组编号的二进制值的 2d 数组

How to array of int transform into 2d array of binary value of every array number?

本文关键字:数组 编号 二进制 2d int 转换      更新时间:2023-10-16

嗨,我正在尝试查找数组每个元素的二进制值并将其设置为二维数组。这是我的代码:

#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 行是我一直在寻找的,但我不知道其余的是什么。有人可以帮我解决这个问题吗?并给我解释为什么会发生这种情况或链接到解释。

您的最后一个 for 循环(打印的那个(应该只有 i<3 作为其条件。 现在i被允许去7,但随后d[i][j]是越界的,打印垃圾。