Erlang:如何将抽象转换为填充零的十六进制字符串

The*_*uad 3 io erlang formatting

我想在Erlang中将42(Base 10)转换为000002A(Base 16)...

我在网上找到了一些指示:

io:format("~8..0B~n", [42]) -> 00000042
Run Code Online (Sandbox Code Playgroud)

io:format("~.16B~n", [42]) -> 2A
Run Code Online (Sandbox Code Playgroud)

但我似乎无法在同一时间找到如何做到这两点,我尝试过:

io:format("~8..0.16B~n", [42])
Run Code Online (Sandbox Code Playgroud)

这似乎是合乎逻辑的事情,但事实并非如此,它给了我一个错误.

谢谢.

小智 8

io:格式("~8.16.0B~n",[42]).
0000002A

基本上,它是~FPPad在哪里:

  • F =场宽
  • P = precsion
  • Pad =填充字符

查看完整的io:format docs

  • 说实话,那个文件很糟糕.我在过去一年半的时间里阅读并重新阅读了它,并且用于打印数字基数的"精确"参数的用法完全不清楚.看看你的例子与文档中的例子有多巧妙:"〜.16B"给出正常的十六进制打印[现在Pad字符==打印数字的基数],在你的版本中它是"16.0B",其中" P"(recision)字段成为数字的基数,Pad字符(在这种情况下为"0")成为填充.或者我没有得到它. (4认同)