将非常大的整数数组转换为单个整数

时间:2016-11-02 12:03:45

标签: c

我在堆栈交换博客上发现了以下代码,它将整数数组转换为单个整数。但是当我的输入整数数组超过10个条目时,它就会失败。实际上我有一个32个条目的二进制数组。我想将此数组转换为单个二进制数。我试图使用下面的代码,但它超过10个条目失败。请提出一种方法来实现这一目标。

int main(int argc, char ** argv){
    int n;
    int i;
    char buff[100];
    int x[]={0,1,2,3,4,5,6};
    for (i=0; i<7; i++) {
        sprintf(&buff[i],"%d",x[i]);
    }
    n = atoi(buff);

    printf("the number is %d",n);

}

1 个答案:

答案 0 :(得分:0)

只需为基数2做相同的操作。

int main(int argc, char ** argv){
    int n;
    int i;
    char buff[100];
    int x[]={0,1,0,1,1,0,1,1,
             0,0,0,1,0,0,1,1,
             1,1,1,1,1,0,0,0,
             1,0,0,0,0,1,0,0};

    n = 0;
    for (i=0; i<32; i++) {
        n = n << 1 + x[i];
    }

    printf("The number is %d in decimal\n", n);

}