unsigned word; int n; word=~0; //什么意思 n=1; while((word>>=1)!=0) //什么意思 ++n; cout<<n;

如题所述

unsigned word; -- 声明 word 是 无符号整型。
word=~0; -- word 等于 0的按位取反,得2进制32位全1。16进制0xffffffff.

word>>=1 word 右移1位,左端最高位补1个0,再赋回word.
循环,当 移位运算后word 不等于0 继续循环。等于0时退出循环。
n 是计数器,统计一共循环了多少次。-- 连续32位1,则循环32次。输出 n = 32.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-13
简单的说下:
word=~0就是说将 0 的各个位去反,在赋值给变量word
word>>=1 是另一种形式的简写:word=word>>1,即word变量右移一位再赋值给word
while((word>>=1)!=0)则是指当word变量右移一位后不等于0条件为真就执行while循环语句
现在应该清楚了吧本回答被提问者采纳