【问题标题】:Conversion between decimal to hexadecimal十进制到十六进制之间的转换
【发布时间】:2012-09-17 16:45:23
【问题描述】:
unsigned int hex_vale, some_decimal_constant, some_other_decimal_constant;

for(10,000 times){
if(hex_value == some_decimal_constant){
        call_some_function();
    }
else if(hex_value == some_other_decimal_constant){
        call_some_other_function();     
    }
}

在执行 if 循环的上述函数中,我必须将十六进制转换为十进制,反之亦然。我不想将十六进制转换为十进制 10000 次。你能帮我把十进制转换成十六进制吗?十六进制数应该存储在无符号整数中。

【问题讨论】:

  • 我想如果你不能用真正的C++写“for 10000 times”,你可能得从低一点开始。
  • 您能否举例说明如何在变量hex_value 中放置一个值,让您认为需要进行一些转换?
  • Ajay Bidari,如果我们能看到更多代码,您的问题会更清楚。请您创建一个完整的程序来完成您想要的操作吗?然后我们会更好地了解您缺少什么。 SSCCE.ORG
  • 一个函数将一些地址写入一个数组,而不用前缀“0x”。我必须搜索一个特定的地址并调用一些函数。这就是为什么我在上面的代码中有两个 if 条件。我无法输入代码 sn-p 才能在此处发布。它的代码相当大。
  • 函数如何写入地址?作为字符串?

标签: c++ hex


【解决方案1】:

您不必执行任何转换。这些数字以二进制形式存储。在这种情况下,十六进制和十进制只是这些二进制数的不同文字或字符表示。

例子:

#include <iostream>

int main()
{
  std::cout << std::boolalpha;
  const int a = 32;
  const int b = 0x20;
  std::cout << (a==b) << "\n"; // prints "true"

}

【讨论】:

  • 只有当十六进制数字以 0x 开头时才成立。让我们假设 hex_value 不是以 0x 开头,而是一个十六进制数..
  • @ajaybidari 如果不以0x 开头,则它不是C++ 中的十六进制数。
猜你喜欢
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多