我正在做一个关于多线程的项目。这都是关于机器人迷宫的。现在,我需要将chRobotCmdStatus的值转换为8位格式。 chRobotCmdStatus是全局变量。
这是我的代码:
void charToBit(char character)
{
char output[9] = "00000000";
itoa(character, output, 2);
printf("%s\n", output);
}
// Control Thread
unsigned int __stdcall ControlThread(void* arg){
printf("Control Thread 1 \n");
printf("\n VALUE OF: %d", gchRobotCmdStatus);
charToBit(gchRobotCmdStatus);
return 1;
}
输出:
VALUE OF: 00
它必须是:
VALUE OF: 0000 0000
关于如何实现此目标的任何建议?
最佳答案
void charToBit(char ch)
{
for (int i = 7; i >= 0; --i)
{
putchar( (ch & (1 << i)) ? '1' : '0' );
}
putchar('\n');
}
关于c - 用C打印位的格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31694349/