sscanf long hex 数字到 long long int
sscanf long hex number into long long int
我有很长的十六进制数,例如a3dafc126e(10 个字符长),我想使用 sscanf 读取并转换为十进制数:
long long int timestamp=0;
result = sscanf(msgPtr,"%10x", ×tamp); //msgptr contains the string a3dafc126e
printf("%lld\n",timestamp);
然而结果是
3673952878
对应dafc126e
你能告诉我,我做错了什么吗,scanf 只读取 8 个十六进制字符而不是 10 个?
"%10x"
用于读取 int
值,您的 int
大小可能是 4 个字节。
要读取long long int
值,请使用sscanf(msgPtr,"%10llx", ×tamp);
如果您的编译器报错或无法运行,请尝试 sscanf(msgPtr,"%10I64x", ×tamp);
我有很长的十六进制数,例如a3dafc126e(10 个字符长),我想使用 sscanf 读取并转换为十进制数:
long long int timestamp=0;
result = sscanf(msgPtr,"%10x", ×tamp); //msgptr contains the string a3dafc126e
printf("%lld\n",timestamp);
然而结果是
3673952878
对应dafc126e
你能告诉我,我做错了什么吗,scanf 只读取 8 个十六进制字符而不是 10 个?
"%10x"
用于读取 int
值,您的 int
大小可能是 4 个字节。
要读取long long int
值,请使用sscanf(msgPtr,"%10llx", ×tamp);
如果您的编译器报错或无法运行,请尝试 sscanf(msgPtr,"%10I64x", ×tamp);