gpt4 book ai didi

计算 C 中一个整数占用多少位

转载 作者:行者123 更新时间:2023-11-30 21:07:37 25 4
gpt4 key购买 nike

我正在研究这个简短的算法,提示用户输入一个整数,输出将是整数占用的位数:但是,当我输入非常大的数字时,输出会变成负数。我不希望有负输出。我怎样才能解决这个问题?还有更好的方法来应用这个过程吗?

 int numberHowBig =0;
printf("How many Bits? ");
scanf(" %d", &numberHowBig);
printf("n\n");


int myIncrementor = 1, myMultiplier = 1,
finalValue = 1;
while (myIncrementor < numberHowBig){
myMultiplier *=2;
finalValue = finalValue + myMultiplier;
myIncrementor++;
}
if ((numberHowBig == 0) || (numberHowBig == 1)){
printf("Top value: %d\n\n", numberHowBig);
} else {
printf("Top value: %d\n\n", finalValue);
}

最佳答案

您可以使用 %u 而不是 %d 来打印数字的无符号整数版本。您的问题源于这样一个事实:“int”类型仅限于 4 个字节的内存,并且您以指数方式增加它(通过添加 myMultiplier),因此它对于 4 个字节来说太大,因此它会把事情搞砸。

关于计算 C 中一个整数占用多少位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42791808/

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