我正在寻找一种方法,将decimal
的纪元时间转换为hexadecimal
(例如:decimal = 1417502160098
和hexadecimal = 14a09b674e2
)。
Loadrunner脚本使用十六进制值来获取最新图像。
我发现这很困难,因为c中没有标识符来加权13位数的十进制值。
如果有任何人在Loadrunner中试过这个,请告诉我。
答案 0 :(得分:1)
C中有一个64位整数类型。它叫做int64_t,可以像这样使用:
#include <stdio.h>
#include <inttypes.h>
int main(void)
{
int64_t epoch = 1417502160098LL;
printf("%" PRIx64 "\n", epoch);
return 0;
}
答案 1 :(得分:1)
我完全不确定你的意思是“c中没有标识符来加权13位数的十进制值”。
但是,如果要在C代码中执行此操作,通常使用snprintf()
函数将变量的值转换为十六进制数字的字符串:
#include <stdio.h>
#include <inttypes.h>
const uint64_t value = 1417502160098UL;
char hexbuf[32];
snprintf(hexbuf, sizeof hexbuf, "%" PRIx64, value);
UPDATE :如果您无法访问uint64_t
,请确定编译器的unsigned long long
类型是否足够大,通常是64位,这是您需要的。如果失败,您可能需要滚动自己的高精度整数,因为您只需要例如一对32位的数字应该不会太难。
答案 2 :(得分:1)
如上所述,您需要C代码才能执行此操作。虽然您需要一组兼容32位和64位的代码,但在这种情况下使用64位整数类型可能不太有用。
从一个数字基础到另一个数字基础的转换对于大学一年级编程学生来说是一个相当普遍的练习,因此您可以在任意数量的教科书中找到例程。我还包括一个示例链接(未经测试/未经验证)
http://www.programiz.com/c-programming/examples/hexadecimal-decimal-convert