这是我尝试过的:
int i=-1,size=1;
while (i>>1)
size++;
printf("%d",size);
目标是确定 int
的大小不使用sizeof
运算符。
上面的循环结果是无限的。有没有办法修复它,使其达到预期的效果?
最佳答案
只需使用 unsigned
表示 i
,而不是 int
。他们是
保证具有相同的大小,并且有符号整数的右移是实现定义的(但通常会移入符号位)。并且不要忘记划分
由 CHAR_BIT
得出的结果(不保证为 8)。
关于c++ - 如何确定int的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522339/