

【题目描述】
小杨有两个正整数a 和b。他想知道这两个数的二进制表示中,哪些位置上的数字都是1。
二进制位从右往左编号为第0位、第1位、第2位……
如果一个数的二进制位数比较少,那么它左边缺少的高位都当作0。
小知识:二进制就是只用0 和1 来表示一个数。我们可以用“除以2取余数”的方法来得到它的二进制。
举个例子:把13变成二进制
- 13 ÷ 2 = 6…… 余1(这是最低位,即第0位)
- 6 ÷ 2 = 3…… 余0(第1位)
- 3 ÷ 2 = 1…… 余1(第2位)
- 1 ÷ 2 = 0…… 余1(第3位)
把余数从下往上写:1101,这就是13的二进制。
注意:我们是从右往左编号的,所以第0位是最右边的那个1,第1位是0,第2位是1,第3位是1。
再试一个:把7变成二进制
- 7 ÷ 2 = 3…… 余1(第0位)
- 3 ÷ 2 = 1…… 余1(第1位)
- 1 ÷ 2 = 0…… 余1(第2位)
结果是111,也就是第0、1、2位都是1,第3位以上都是0(因为左边高位不足,自动补0)。
默认小猫角色和白色背景,请你帮小杨计算一下:一共有多少个二进制位,在两个数中同时是1?把结果存储在变量ans中。
【输入描述】
新建变量“a”,表示第一个正整数。
新建变量“b”,表示另一个正整数。
($1 \le a, b \le 1000$,这样二进制最多只有10位,方便计算)
如下图所示:

【输出描述】
新建变量“ans”,用于存储最后的结果(满足条件的二进制位的个数)。
如下图所示:

【样例1】
输入:
a = 13
b = 7
输出:
ans = 2
【样例解释1】
- 13的二进制是1101(从右往左:第0位=1,第1位=0,第2位=1,第3位=1)
- 7的二进制是0111(第0位=1,第1位=1,第2位=1,第3位=0,因为7只有3位,第3位补0)
- 共有2 个位(第0位和第2位)在两个数中都是1,所以答案是2。
【样例2】
输入:
a = 8
b = 4
输出:
ans = 0
【样例解释2】
- 8的二进制:1000(第3位=1,其余为0)
- 4的二进制:0100(第2位=1,第3位补0)
- 没有一位同时是1,答案为0。
【注意事项】
- 变量名的拼写(包括大小写)要和题目完全一致(建议直接从题目中复制变量名,避免自己打字时弄错大小写或拼写)。
- 输入变量直接赋值即可,无需使用“询问并等待”积木块。
- 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。