我想生成以07060504003020100
开头的十六进制数字序列。
下一个号码将按顺序为0f0e0d0c0b0a0908
等。
当我使用unsigned long long int
并输出前4位数据时,意味着0
被截断。并打印706050403020100
。
所以我考虑将数字放入char
数组缓冲区(或其他缓冲区),然后打印输出,以便以后如果我想比较,我可以进行字符/字节比较。
有人可以帮帮我吗? char[8]="0x0706050403020100"
看起来不正确。
答案 0 :(得分:2)
你用什么打印出你的价值?将8个0填充字节打印到stdout的语法类似于
printf("%016X", value);
它像这样崩溃:
%x = lowercase hex
%X = uppercase hex
%16X = always 16 characters (adds spaces)
%016X = zero-pad so that the result is always 16 characters
例如,您可以在基数10中执行相同的操作:
printf("%05d", 3); // output: 00003
你也可以玩小数:
printf("%.05f", 0.5); // output: 0.50000