gpt4 book ai didi

c - 1048576 以内的所有数字的位数都是错误的

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:43 25 4
gpt4 key购买 nike

<分区>

我想将 1048576 以下的所有整数转换为二进制,并显示所有位数与未设置相同的位数。当我使用包含 20 个整数的 t 表时,我的程序运行良好,在这种情况下,cpt 记录了正确的结果。

但是,当我使用包含 40 个整数的表 t 时(这意味着我希望数字具有 20 个“1”位和 20 个“0”位),计数器设置为 1。什么是错了吗?

int main(){        
long int a;
int r,j,i;
long int aux;
int z,u;
long int cpt;
int t[40];
for(int k=0;k<40;k++) t[k]=0;
cpt=0;

for(a=0;a<1048576;a++){
j=0;u=0;z=0;
aux=a;
do{
r=aux%2;
switch(r){
case 0 : t[j]=0;
aux=(aux/2);
j++;
break;
case 1 : t[j]=1;
aux=((aux-1)/2);
j++;
break;
}

}while(aux!=0);

for(i=0;i<40;i++){
if(t[i]==0) z++;
else u++;
}
if(z==u) cpt++;
}

printf("%d",cpt);
getchar();

}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com