c++ - 如何将 int 数组中定义的整数转换为十六进制?

标签 c++

我有一个代表非常大的数字的 int 数组,例如:

// ...
unsigned int n1[200];
// ...

n1 = {1,3,4,6,1,...} ==> means my number is 13461...

如何将这个大数字转换成它的十六进制值?

最佳答案

所以这是我对这个问题的看法:

  1. 你有一个数字数组。
  2. 您想从这个数字数组构建一个无符号整数。
  3. 数字数组可以是十六进制数字或十进制数字。

要构建这个 unsigned long long,假设有一个 DECIMAL 数字数组:

unsigned long long myNum = 0;
unsigned int n1[200];

for (int i=0; i < n1.length ; i++ ){
    myNum += pow(10,i) * n1[n1.length - i];
}

要构建这个 unsigned long long,假设有一个十六进制数字数组:

for (int i=0; i < n1.length ; i++ ){
    myNum += pow(16,i)* n1[n1.length - i];
}

(注意基数 16)

免责声明:数组中存储的数字上限为 16 位。之后你将溢出缓冲区

如果只是以正确格式显示数字的问题...

好吧,int 是 int 是 int...(在内存中)。

我手上有 10 根手指,无论我是否称那个数字为 10 或 A。

如果你想用十六进制格式化 DISPLAY 的数字,那么试试这样的:

unsigned int i = 10;
//OR
unsigned int i = 0xA;

printf("My number in hex: %x", i);
printf("My number in decimal: %d", i);

关于c++ - 如何将 int 数组中定义的整数转换为十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480004/

相关文章:

c++ - 动态链接库的工作原理

c++ - 将堆栈复制到没有段错误的堆栈

c++ - 使用 lambda 函数时可能发生堆栈溢出?

java - 将消息从 C++ 服务器发送到 Java 客户端

c++ - shared_ptr 在哪里?

c++ - 调试版本中的内联函数 (Visual C++ 2008)

c++ - 具有独特着色器的 OpenGL 多次绘制调用会出现空白屏幕

c++ - PyTorch C++ 扩展 : Accessing data for Half Tensors

通过 Visual Studio 进行 C++ 调试 - vector 大小变化的观察点

c++ - 如何将boost.asio添加到windows通用应用项目中?