Elixir 将十六进制字符串转换为整数
我有一个十六进制值包,我正试图处理它。它们以一条线的形式出现。例如,数据包的一部分是Elixir 将十六进制字符串转换为整数,elixir,Elixir,我有一个十六进制值包,我正试图处理它。它们以一条线的形式出现。例如,数据包的一部分是C0,它是192。但是,我不太确定如何将字符串值转换为整数值 如果我使用这个: Base.decode16!(“C0”) # 。。。我得到一个二进制文件 我认为提取这个整数值的唯一方法如下: =Base.decode16!(“C0”) x # 192 这是可行的,看起来有点习惯,但我对长生不老药还不太熟悉,有点不确定这是否是最好的解决方案。如何在Elixir中将字符串十六进制值转换为整数?您可以通过以下方式
C0
,它是192
。但是,我不太确定如何将字符串值转换为整数值
如果我使用这个:
Base.decode16!(“C0”)
#
。。。我得到一个二进制文件
我认为提取这个整数值的唯一方法如下:
=Base.decode16!(“C0”)
x
# 192
这是可行的,看起来有点习惯,但我对长生不老药还不太熟悉,有点不确定这是否是最好的解决方案。如何在Elixir中将字符串十六进制值转换为整数?您可以通过以下方式将二进制转换为它表示的整数: 你可以用 要将其转换回,可以使用
# to charlist
Integer.to_charlist(192, 16) # returns 'C0'
# to string
Integer.to_string(192, 16) # returns "C0"
当我这样做的时候,我得到了一个错误:“**(UndefinedFunctionError)undefined function:Integer.parse/2”也许你有旧的elixir版本?我用Elixir1.1.1测试了它,效果很好。是的,我正在运行1.0.4。我会继续升级。@ElliotLarson这是一个很好的方法,顺便说一下:)一定要查看
Integer.to\u string/2
(而不是to\u char\u list
)以及string.to\u Integer/2
@whatyouhide我更喜欢你的想法Integer.to_string/2
和string.to_Integer/2
转换听起来很自然。你知道如何通过模式匹配实现同样的效果吗?
Integer.parse("C0", 16) # returns {192, ""}
# to charlist
Integer.to_charlist(192, 16) # returns 'C0'
# to string
Integer.to_string(192, 16) # returns "C0"