下面的代码打印ffffffffff。
我需要的输出是16位数的长度与前导零000000ffffffffff。var1和var2变量可以是不同的,所以我没有必要只填充6个零。我只需要输出到带有前导零的16位数字。我应该如何继续?
#include <stdio.h>
int main() {
int var1 = 1048575;
int var2 = 1048575;
char buffer[100];
sprintf(buffer, "%x%x", var1, var2);
printf("%s\n", buffer);
return 0;
}发布于 2016-01-10 18:43:30
您还可以进行一些小运算来计算有效位数,然后打印所需的前导零的数量,因为log_base_ 16( var )是var的十六进制大小:
#include <stdio.h>
#include <math.h>
int main ()
{
int var1 = 1048575;
int var2 = 1048575;
int padd = 16 - ceil(log(var1)/log(16))-ceil(log(var2)/log(16));
char buffer [100];
sprintf (buffer, "%0*x%x%x", padd, 0, var1, var2);
printf("%s\n", buffer);
return 0;
}https://stackoverflow.com/questions/34703806
复制相似问题