与谜题26中的程序一样,下面的程序也包含了一个记录在终止前有多少次迭代的循环。与那个程序不同的是,这个程序使用的是左移操作符(<<)。你的任务仍旧是要指出这个程序将打印什么。当你阅读这个程序时,请记住C#使用的是基于2的补码的二进制算术运算,因此-1在任何有符号的整数类型中(sbyte、short、int或long)的表示都是所有的位被置位:
class Shifty
{
static void Main()
{
int i = 0;
while (-1 << i != 0)
i++;
System.Console.WriteLine(i);
}
}
C#解惑总目录
class Shifty
{
static void Main()
{
int i = 0;
while (-1 << i != 0)
i++;
System.Console.WriteLine(i);
}
}
C#解惑总目录