设N和B都是(无符号)整型变量,下面c代码段的功能是计算变量B的二进制表示中(

资格题库2022-08-02  46

问题 设N和B都是(无符号)整型变量,下面c代码段的功能是计算变量B的二进制表示中( )。N=0;whileB.{B=B&(B-1);    //"&"是按位"与"运算N++;}A.数字1的个数B.数字1比数字0多的数目C.数字0的个数D.数字0比数字1多的数目

选项 A.数字1的个数
B.数字1比数字0多的数目
C.数字0的个数
D.数字0比数字1多的数目

答案 A

解析 本题考查基础数学应用的基本技能。如果B=0(二进制全0),则计算得到N=0。如果B非0(二进制表示中含有数字1),则B-1必然是将最靠右的数字1变成0,并将其右面(若存在)连续若干个0变成1。B&(B-1)的结果就是将原来B的最靠右的数字1变成0,其他数字不变。这样,B=B&(B-1)的结果就是清除了B中最靠右的1个数字1。题中的代码段中,每循环1次这样的运算,变量B中的数字1就减少1个,N就增加1,直到B变为全0为止。因此,该代码段的功能就是计算B中数字1的个数。
转载请注明原文地址:https://tihaiku.com/congyezige/2425402.html

最新回复(0)