问题相关代码,请勿粘贴截图
#include <stdio.h>
void make_wave(int data,int n)
{
int temp =n - 1;
int i;
int yy;
int b = 1 << temp;
for(i=0;i<=temp;i++)
{
printf("i=%d ",i);
printf("%d ",data);
printf("%d ",b);
yy = data&b;
printf("data&b = %d ",yy);
if (data&b != 0)
{
printf("H\n");
}
else
{
printf("L\n");
}
data = data << 1;
}
}
int main()
{
make_wave(3,2);
return 0;
}
运行结果及报错内容
i=0 3 2 data&b = 2 H
i=1 6 2 data&b = 2 L
我的解答思路和尝试过的方法
在i=1的时候,&的结果为2,为什么会输出L?
我想要达到的结果
应该是H才对啊