使用Elixir打印十六进制整数
我可以在Erlang中执行此操作:使用Elixir打印十六进制整数,elixir,string-formatting,Elixir,String Formatting,我可以在Erlang中执行此操作: io:fwrite("~.16X~n", [-31,"0x"]). -0x1F ok 但不是长生不老药: :io.fwrite(“.16X~n,[-31,0x]”) **(ArgumentError)参数错误 (stdlib):io.format(#PID,“.16X~n”,[-31,“.0x]”) 为什么不呢?添加@Dogbert的评论作为答案: 尝试使用单引号: :io.fwrite('~.16X~n', [-31, '0x']) 另一个解释:Eli
io:fwrite("~.16X~n", [-31,"0x"]).
-0x1F
ok
但不是长生不老药:
:io.fwrite(“.16X~n,[-31,0x]”)
**(ArgumentError)参数错误
(stdlib):io.format(#PID,“.16X~n”,[-31,“.0x]”)
为什么不呢?添加@Dogbert的评论作为答案: 尝试使用单引号:
:io.fwrite('~.16X~n', [-31, '0x'])
另一个解释:Elixir中的单引号表示字符列表(有关更多详细信息,请参阅)。Erlang
fwrite
函数需要的字符列表不是长生不老药二进制文件,因此双引号不起作用,而单引号起作用 为什么不使用Integer.to_string/2
iex(1)> Integer.to_string(-31, 16)
"-1F"
试试单引号:
:io.fwrite('~.16X~n',[-31',0x'])
。