【问题标题】:Howto convert the lower 10bits of a uword into hex in C如何在C中将uword的低10位转换为十六进制
【发布时间】:2013-04-14 11:34:36
【问题描述】:

我有以下功能:

uword ADC_uwReadConv(void) {
  ADCIR = 0;
  return(ADDAT);
}

此函数返回(C164CI 的)AD 转换的结果。低 10 位包含转换结果,高 4 位标识转换后的模拟通道。

现在,我有一些问题:

  • 我现在知道 datatype uword 是什么了。如果有人能给我详细的解释就好了。
  • 我需要将结果转换为十六进制,我真的不知道该怎么做。

【问题讨论】:

  • 这不是标准 C。你应该给出你想要遵循的确切标准(C99 ?),并给出你正在使用的 #include 和你正在使用的编译器。我猜uword 是一些unsigned(例如unsigned shortunsigned int)...使用标准C 你可以printf("%x\n", ADC_uwReadConv() & 0x3ff); 以十六进制打印低10 位。跨度>

标签: c hex converter


【解决方案1】:

这是一个 16 位微处理器,因此字长为 16 位。一个 uword 是一个无符号字;在这种情况下,范围从 0x0000 - 0xFFFF。

“转换”的结果不一定是最好的选择词。如果您确实需要显示值的低 10 位,您可以使用类似

printf("%x", ADC_uwReadConv()&0x3F)

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2021-06-26
    • 2015-12-03
    • 2017-07-31
    • 2013-07-20
    • 2012-06-17
    • 2017-03-08
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多