【问题标题】:Binary print with printf() possible this way? [closed]可以通过这种方式使用 printf() 进行二进制打印吗? [关闭]
【发布时间】:2019-07-30 19:04:48
【问题描述】:

在 STM32 MCU 上编程期间,发现使用printf() 函数通过 USART 发送数据以获取二进制代码有困难。找到了可能是错误的解决方案,但对我有用:

uint8_t bin = 0xAA;
printf("Converting number to binary 0b%d%d%d%d%d%d%d%d\n",bin>>7&1,bin>>6&1,bin>>5&1,bin>>4&1,bin>>3&1,bin>>2&1,bin>>1&1,bin&1);

这是我的第一篇文章,请多多包涵。

【问题讨论】:

标签: c binary printf stm32 usart


【解决方案1】:

是的,发布的代码片段确实生成了字节 bin 的二进制表示。

但请注意,您应该更改演示文稿以提高可读性:>>& 之间的反直觉优先顺序需要一些多余的括号以避免歧义。

uint8_t bin = 0xAA;
printf("Converting number to binary 0b%d%d%d%d%d%d%d%d\n",
       (bin >> 7) & 1, (bin >> 6) & 1, (bin >> 5) & 1, (bin >> 4) & 1,
       (bin >> 3) & 1, (bin >> 2) & 1, (bin >> 1) & 1, (bin >> 0) & 1);

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多