我正在做一个关于多线程的项目。这都是关于机器人迷宫的。现在,我需要将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/

10-09 08:36