我把这段代码写成练习。它计算用于在一个系统中存储整数的位。
此处的代码工作正常,并在定义时提供正确的输出 unsigned int x , 但是当我定义 int x 时,它根本不会产生任何结果。 该程序在没有任何错误或警告的情况下进行编译,但在将 x 声明为 int
时,终端上不会显示任何内容int int_size ()
{
int x = ~0;
char bit_count = 0;
while ( x != 0 )
{
x >>= 1;
bit_count++;
}
return bit_count;
}
使用unsigned int x 声明可以正常工作。我很想知道为什么它在使用 signed int 声明时表现得很糟糕。
F.Y.I - 我在 gcc编译器中使用 CODE :: BLOCKS IDE。