如何将十六进制转换为十进制?

2024-01-21

我有不同的十六进制数据传入并存储到整数类型寄存器中。

当我使用 fprint 时,我可以看到以下内容:

0x3076
0x307c
.
.
.

但是,我想显示上述十六进制数据的十进制版本,如下所示。

12406
12412
.
.
.

理论上,假设对于第一个值,您可以执行以下操作将其转换为十进制。

(6* 16^0)+(7 * 16^1)+(0*16^2)+(3*16^3)=6 + 112+ 0 + 12288 = 12406

因此,如果我有基于字符的版本“0x3076”,并且如果我能够获得每个单个字符 6 - 7 - 0 - 3,我就可以计算小数位数!

所以,我决定将“3076”除以 1000。我预计会得到 3,但我却得到了两个字符!但是,如果我能够为“307c”的其余部分获得 3,我将无法获得“C”。如果是十进制,则可能无法使用十六进制!

另外,我尝试过“strtol" 命令。当我使用 Cygwin 编译我的代码时,我不确定错误在哪里!我做错了什么?

所以,我只需要找到一种方法来从十六进制数据中获取每个单个字符!

有什么想法吗?

P.S.

这是我的代码,以帮助您给我一个想法。

   int get_readings(int source, int phase, int max_tries)
{
    uint8_t buf[MAX_IEC1107_MSG_BODY];
    uint8_t inbuf[MAX_IEC1107_MSG_BODY];
    int inlen;
    uint8_t *s;
    int32_t value;
    int status;
    double voltage;
    double current;
    double active_power;
    double reactive_power;
    double apparent_power;
    double power_factor;
    double frequency;

    s = buf;
    *s++ = HOST_CMD_GET_READINGS_PHASE_1 + phase;
    *s++ = 0x00;
    if (max_tries != 1)
        meter_set_max_tries(&emeter[source].meter_msg, max_tries);
    if (meter_exchange(&emeter[source].meter_msg, buf, 2, inbuf, &inlen)
        &&
        inbuf[1] != 0xFF)
    {
        emeter[source].no_response = FALSE;
        s = inbuf;
        /* Get current readings */
        value = (s[3] << 8) | s[2];

        fprint(stderr, "value:" %p\n, value); // this give me HEX code

. . .


当读取表示十六进制数字的字符串时,请使用strtol()将其转换为长整型。然后,如果您想以十进制打印数字,请使用printf() with a %d格式说明符。

char num[]="0x3076";
long n = strtol(num, NULL, 16);
printf("n=%ld\n", n);  // prints 12406

一旦您使用 longs 读取字符串strtol并进行多头操作,数学应该会自行解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将十六进制转换为十进制? 的相关文章

随机推荐

  • Apple 钥匙串存储客户端身份,因此只有我的应用程序可以访问它

    Aim 我需要以安全的方式在 OS X 应用程序上存储客户端身份 以便只有我的应用程序可以访问它 没有提示请求权限 Problem 当我尝试存储客户身份时 问题立即出现 这是代码示例 到目前为止我已经绑定了什么 BOOL saveClien
  • 制作 Ruby Gem - 无法加载此类文件

    我正在尝试使用以下说明构建 Ruby gemhttp guides rubygems org make your own gem http guides rubygems org make your own gem 以下似乎工作正常并生成了
  • 有没有一种简单的方法来创建带有编码对话框的 C# .NET 文件对话框?

    我试图让用户在 C 和 VS2008 中加载或保存文件时选择文件编码 记事本的对话框底部有一个编码下拉选项 有一种方法可以做到这一点 如下所述 http www codeproject com KB cs getsavefilename a
  • 通过react-redux操作负载传递输入值?

    export class SearchBar extends React Component render return div div
  • 主管 - 用户名无效[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在 Ubuntu 16 04 上运行主管 安装时没有出现问题 我创建了文件 etc supervisor conf d test
  • Java可以删除到回收站吗?

    Java是这里的关键 我需要能够删除文件 但用户希望能够从回收站 取消删除 据我所知这是不可能的 还有人知道吗 十年后 Java 9 终于提供了一种将文件移动到垃圾箱的内置方法 java awt Desktop moveToTrash ja
  • AWS Transcribe Streaming BadRequestException:“无法解码音频流...”

    我正在使用 Websockets 在 Dart Flutter 中构建一个 Transcribe Streaming 应用程序 当我流式传输测试音频 从单声道 16kHz 16 位签名的小端 WAV 文件中提取 时 我得到 BadReque
  • 覆盖身份验证失败处理程序 - Symfony2

    我正在扩展身份验证失败处理程序 一切都主要工作正常 但有一个小问题 这是我的 services yml http utils class class Symfony Component Security Http HttpUtils aut
  • 如何使用 css3 校正鱼眼全景图?

    我觉得是时候将我的 Flash 全景图转换为 js html5 css3 了 我见过一些使用单独的平面图像的优雅解决方案 但我的都是鱼眼 我的直觉告诉我 使用 webkit transform matrix3d 是可行的 但我不太喜欢它 如
  • 在 Android 上运行 Perl 脚本

    我需要运行 Perl 脚本 ishybrid pl http manpages ubuntu com manpages natty man1 isohybrid pl 1 html 来自我的 Android 应用程序 我碰到perl and
  • 更改 FontAwesome 图标与悬停时的文本

    我正在尝试为我的网站创建响应式功能 基本上我想要的是有很棒的字体图标用于导航 但是在计算机上如果将鼠标悬停在图标上 它就会变成一个单词 我已经通过 CSS 尝试过 使用a content 进而a hover content 我以前从未尝试过
  • C#/.NET 4.0 中新的 NoPIA 和类型等效功能是否意味着不再需要 Microsoft.mshtml.dll

    我正在维护一个基于 WPF 的应用程序 其中包含一个基于 WinForms 的 WebBrowser 控件 该控件基于 IE Web 浏览器控件 当我们部署时 我们还必须提供微软 mshtml dll并为我们的 ClickOnce 发布流程
  • cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize

    这三个函数 特别是最后两个函数有什么区别 图书馆手册说 请注意 此函数已被弃用 因为它的名称不 反映其行为 它的功能类似于 未弃用的函数 cudaDeviceSynchronize 应使用 反而 但不太确定这是什么意思 这些都是barrie
  • AngularJs 中隐藏的可见性?

  • Android Studio 1.1.0 中变量值更改中断?

    我知道我可以在代码更改变量的每一行设置一个断点 但是是否有一个选项 例如右键单击变量 添加到监视 该选项会在变量更改值时停止 我认为C 有这个选项 看到这个 https stackoverflow com questions 871328
  • 如何设置浏览器滚动条滚动页面的一部分?

    我在一些网站上看到过这样做 一个例子是artofadambetts com http www artofadambetts com weblog p 169 页面上的滚动条仅滚动页面的一个元素 而不是整个页面 我查看了来源 但还没有弄清楚
  • 在 data.table 中使用不同的列嵌套 ifelse

    我需要计算 a 的某些列的每一行的 最佳值 data table 每行的最佳值是按选定列的给定顺序排列的第一个非 NA 列的值 根据要求 要包含的列可能会因顺序或数量而异 此外 应为每行存储提供最佳值的列的名称 示例数据 With libr
  • Jquery UI 可删除

    Jquery UI droppable 是否能够与计算机内的文件交互 假设我的电脑上有一个图像文件 而不是在webpage我尝试将其放在上面并触发一个简单的警报来通知 仅使用 Jquery UI 可以吗 对于您所描述的内容 请使用HTML5
  • Eclipse:缺少 Eclipse 应用程序启动配置

    我想在 eclipse 的运行 调试配置中选择 Eclipse 应用程序启动配置 用于运行 eclipse 插件 但它不存在 如何在运行 调试配置中添加 Eclipse 应用程序启动配置 我正在使用面向 Java 开发人员的 Eclipse
  • 如何将十六进制转换为十进制?

    我有不同的十六进制数据传入并存储到整数类型寄存器中 当我使用 fprint 时 我可以看到以下内容 0x3076 0x307c 但是 我想显示上述十六进制数据的十进制版本 如下所示 12406 12412 理论上 假设对于第一个值 您可以执