如何将整数转换为char

皮格纳

我有一堆整数ns,其中ns中的所有n都为0 <= n <= 9。我需要将它们另存为字符或字符串。我使用@time比较内存使用情况,我得到了:

julia> @time a = "a"
  0.000010 seconds (84 allocations: 6.436 KiB)
"a"

julia> @time a = 'a'
  0.000004 seconds (4 allocations: 160 bytes)
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
  1. 为什么会有如此巨大的差异?

我选择将整数转换为字符,但是我不知道正确的方法是什么。当我做Char(1)在REPL我得到'\x01': ASCII/Unicode U+0001 (category Cc: Other, control),如果我尝试打印它,我得到这个符号。

相反,当我'1'在REPL中进行操作时,我得到了'1': ASCII/Unicode U+0031 (category Nd: Number, decimal digit),如果我打印了,我得到了1这是我想要的行为。

  1. 如何实现呢?

我考虑过要创建一个字典来为每个整数分配其对应的字符,但是我敢肯定这不是可行的方法...

和盖茨

使用Char(n + '0')这将添加0数字的ASCII偏移量,并修复其余数字。例如:

julia> a = 5
5

julia> Char(a+'0')
'5': ASCII/Unicode U+0035 (category Nd: Number, decimal digit)

还要注意,定时定时@time有点问题,特别是对于非常小的操作。最好使用@btime@benchmark从BenchmarkTools.jl中使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章