2876. 二进制位不同的个数

Naive循环位运算

时间限制:2000 ms

内存限制:256 MiB

题面

对于两个非负整数 xxyy,函数 f(xy)f(x,y) 定义为 xxyy 在二进制表示时,其对应位不同的个数。例如,f(2,3)=1,f(0,3)=2,f(5,10)=4f(2,3)=1, f(0,3)=2, f(5,10)=4。

现在给出一组非负整数 xx yy,计算 f(x,y)f(x,y) 的值。

输入格式

第一行:一个整数 T0<T100)​T(0 \lt T \leqslant 100 )​,表示有 TT​ 组测试数据。

第 2 行 ~ T+1T+1 行:每行输入两个正整数 xxyy0x,y1000000(0 \leqslant x, y \leqslant 1000000 )。两个整数之间有一个空格。

输出格式

对每组测试数据,输出一行。

样例

输入

4
2 3
0 3
5 10
100 200

输出

1
2
4
4