我有一个十六进制值的数据包,我正在尝试处理.它们以字符串形式出现.例如,一个数据包是C0
,即192
.但是,我不太确定如何将字符串值转换为整数值.
如果我用这个:
Base.decode16!("C0")
# <<192>>
......我得到了二进制文件.
我能想到提取这个整数值的唯一方法是这样的:
<> = Base.decode16!("C0")
x
# 192
这是有效的,似乎有点惯用,但我是Elixir的新手,并且不确定这是否是最好的解决方案.您如何将字符串十六进制值转换为Elixir中的整数?
你可以使用Integer
Integer.parse("C0", 16) # returns {192, ""}
要将其转换回来,您可以使用
# to charlist Integer.to_charlist(192, 16) # returns 'C0' # to string Integer.to_string(192, 16) # returns "C0"
您可以将二进制转换为它所代表的整数:binary.decode_unsigned/1
:
iex> 192 |> :binary.encode_unsigned |> Base.encode16 "C0" iex> "C0" |> Base.decode16! |> :binary.decode_unsigned 192