gpt4 book ai didi

char* 十进制到小端十六进制

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:49 25 4
gpt4 key购买 nike

我在向我的代码输入小数参数时遇到问题:

./a.out 650

并想简单地将十进制值转换为十六进制并以小端格式输出:

0A28

我目前的解决方案是使用 atoi 将 char* 转换为十进制(我们可以假设输入是十进制,不用担心错误情况)。

我读过我可以创建一个 int* 并将其转换为 char*,如下所示:

char* bar = argv[1];
int* foo = (char*)&bar;

并且遍历它会产生我需要的解决方案,但我不太明白它是如何工作的。

最佳答案

像这样:

#include <stdio.h>
#include <stdlib.h>

unsigned long int n = strtoul(argv[1], NULL, 0);
unsigned char const * p = (unsigned char const *)&n;

for (size_t i = 0; i != sizeof n; ++i)
printf("%02X", p[i]);

要打印反向字节顺序,请使用 sizeof n - i - 1 代替 i

关于char* 十进制到小端十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com