int num = 0, AndNum = 1;
int temBit=0;
string binBit = "";
int count=0;
for (int i = 0; i < 32; i++)//循环32次,做32次按位与运算
{
temBit = num << i;//将当前数字往左移动i(0)开始,只做最高位
//Console.WriteLine(Convert.ToString(temBit,2));
temBit= (temBit&(AndNum<<31)); //用一个最高位是1的数和目标数做按位与的计算就能得出被移动到最高位的位上的值
if (temBit == 0)
{
binBit += "0";
}
else
{
binBit += "1";
count++;
}
AndNum = 1;
num = 0;
}
Console.WriteLine("{0}的二进制形式是:{1},其中位上为1的个数有{2}个", num, binBit, count);
}
关键位置已经注释好了