Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 将十六进制字符串转换为整数_Elixir - Fatal编程技术网

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"