【问题标题】:Get lowest bytes from an uint16_t in C从 C 中的 uint16_t 获取最低字节
【发布时间】:2019-08-03 05:45:13
【问题描述】:

我想在 C 中获取 uint16_t 的最低字节数。

例子:

20544 = 0x5040
0x40 = 64

我试过了,(X & ((1<<2) - 1))。这对我不起作用。

【问题讨论】:

  • 对我不起作用。 - 你为什么认为它不起作用?
  • 您的示例表明您需要最低字节 (0x40),而不是最低位。
  • 是的..看起来你的意思是“两个最低有效的十六进制数字”。或者你的例子不正确
  • 您的编辑让情况变得更糟。你要一个字节,现在代码完全不对应了。
  • 我建议你停止编辑,想一想,彻底改写问题和代码。别着急。

标签: c bit lsb


【解决方案1】:

您使用字节(复数),但 uint16_t 由两个字节组成,所以我假设您的意思是最低有效字节(单数)。如果是这样,这是获得它的一种方法:

uint8_t lsb = ((uint8_t)(((uint32_t)(val)) & 0xFF))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2012-03-18
    相关资源
    最近更新 更多