程序填空题:阀门传感器 - C/C++ 位操作
CPU通过一个8位的IO口读取了1个字节的传感器值:unsigned char value = 0x45。这个字节的8个比特分别代表了车间里8个阀门的当前状态,1表示该阀门通,0表示该阀门断。请编写一个程序,从value变量解析出8个阀门的当前状态,并依次输出。
请将下述程序补充完整,使其可以完成上述任务。
c
#include <stdio.h>
#include <stdbool.h>
bool isValveOn(unsigned char v, int iNumber)
{
return
}
int main()
{
unsigned char v = 0x45;
for (int i=0;i<8;i++)
printf("Valve %d: %s\n",i,);
return 0;
}
程序期望的执行结果为:
Valve 0: On
Valve 1: Off
Valve 2: On
Valve 3: Off
Valve 4: Off
Valve 5: Off
Valve 6: On
Valve 7: Off
### 感觉不会? 那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)
答案:
第1空:v & (0x01 << iNumber);
第2空:(isValveOn(v,i)?"On":"Off")
请将下述程序补充完整,使其可以完成上述任务。
c
#include <stdio.h>
#include <stdbool.h>
bool isValveOn(unsigned char v, int iNumber)
{
return
}
int main()
{
unsigned char v = 0x45;
for (int i=0;i<8;i++)
printf("Valve %d: %s\n",i,);
return 0;
}
程序期望的执行结果为:
Valve 0: On
Valve 1: Off
Valve 2: On
Valve 3: Off
Valve 4: Off
Valve 5: Off
Valve 6: On
Valve 7: Off
### 感觉不会? 那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)
答案:
第1空:v & (0x01 << iNumber);
第2空:(isValveOn(v,i)?"On":"Off")