使用`%016llx`打印字符串

时间:2012-03-02 10:24:41

标签: c gcc printf

对于可能基本的问题感到抱歉,但我正在尝试理解一些代码,而我无法理解这个(%016llx)占位符的含义。

我知道%x是十六进制编码,据我所知,两者之间的数字应该是数字和0填充;但我无法解码016ll序列,谷歌搜索没有多大帮助,只是展示了一个与gcc有某种联系的例子。

鉴于我是一名几乎没有经验的程序员,你能帮助我吗?

3 个答案:

答案 0 :(得分:6)

description of fprintf() in the C99 Standard告诉我们%016llx转换规范由

组成
  1. 强制性%字符
  2. 用于填充的0标志
  3. 16为“最小字段宽度”
  4. ll为“长度修饰符”
  5. x转换说明符
  6. 所以,总的来说,这意味着用十六进制表示法写一个unsigned long long int,占用至少16个位置,填充0

答案 1 :(得分:5)

ll表示该参数将被解释为相应签名的long long intx表示十六进制,0表示输出为零填充,16表示要打印的数字的宽度。

答案 2 :(得分:2)

ll(ell-ell)代表long long。你对其他人是对的,这意味着:

  1. long long数字(来自堆栈)
  2. 在16个地方将其格式化为十六进制数字,左边为零填充。