【问题标题】:Going from Hex To Dec with PIC18?使用 PIC18 从十六进制到十二月?
【发布时间】:2013-05-08 12:31:45
【问题描述】:

我在尝试将 4 位数字组合在一起以获得正确的十进制值时遇到了一点问题。首先让我从我的代码开始。

long firsttwo, secondtwo, combined; 
firsttwo = 0x0C;
secondtwo = 0x6C;

0C的十进制值:12

6C的十进制值:108

但所有0C6C的十进制值:3180

现在如何将所有数字转换为一个变量才能正确地将其转换为十进制?因为如果我自己转换firsttwo,那么secondtwo 本身我不会得到相同的最终总数。谢谢!

【问题讨论】:

  • ? 12*256 + 108 = 3180,对我来说是正确的。有什么问题?
  • 我认为他错误地认为 0C6C12108 或类似的东西。
  • 您的预期结果是什么?
  • @DanielFischer,所以应该是combined = firsttwo * 256 + secondtwo;
  • 是的,* 256,或* 0x100,或<< 8,随你的喜好。

标签: c microcontroller


【解决方案1】:

合并时需要移动最高位字节:

combined = (firsttwo << 8) | secondtwo;

这会将 combined 设置为 0x0c6c。

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2011-12-09
    • 2013-02-21
    • 2018-07-26
    • 1970-01-01
    相关资源
    最近更新 更多