以下代码无法按预期工作

时间:2016-11-16 05:41:04

标签: c++ c

我把这段代码写成练习。它计算用于在一个系统中存储整数的位。

此处的代码工作正常,并在定义时提供正确的输出 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。

0 个答案:

没有答案