有点看不懂题目的意思,书上百度都没找到相关例题,答案是8没有过程
希望有人可以教教我🥺
n=054,8进制,即0010 1100
&按位与,参与运算的位都为1结果才是1,因此0x22222222参与运算的也就0x22,高位上的都和0与运算结果为0了。
n= 054 : 0010 1100
n= (n & 0x22222222) + ((n>>1)& 0x55555555);
(n & 0x22222222) = 054 & 0x22 = 0010 1100 & 0010 0010 = 0010 0000 = 0x20 = 32
(n>>1) = 0001 0110
(n>>1) & 0x55 = 0001 0110 & 0101 0101 = 0001 0100 = 0x14 = 20
n=32+20=52
----------------------
n= (n & 0x77) + ((n>>2)& 0x33);
(n & 0x77) = 52 & 0x77 = 0011 0100 & 0111 0111 = 0011 0100 = 0x34 = 52
(n>>2) = 1101
(n>>2)& 0x33 = 1101 & 0011 0011 = 0001 = 1
n=52+1 =53
----------------------
n= (n & 0x0f) + ((n>>4)& 0x0f);
(n & 0x0f) = 53 & 0x0f = 0011 0101 & 1111 = 0101 = 5
(n>>4) = 0011
(n>>4)& 0x0f = 0011 & 1111 = 0011 = 3
n=5+3=8
后面几个式子+左边都是n,右边都是0