我在堆栈交换博客上发现了以下代码,它将整数数组转换为单个整数。但是当我的输入整数数组超过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);
}
答案 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);
}