我有一堆整数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)
我选择将整数转换为字符,但是我不知道正确的方法是什么。当我做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
。这是我想要的行为。
我考虑过要创建一个字典来为每个整数分配其对应的字符,但是我敢肯定这不是可行的方法...
使用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] 删除。
我来说两句