crystal-lang - 如何将 Int32 转换为带有前导 0x 的字符串(以 16 为基数)?
问题描述
在 shell 上,我将一个数字(例如 29360134)转换并格式化为字符串“0x1c00006”:
printf "%#08x" 29360134 # -> 0x1c00006
但是,在 Crystal 中,我使用相同的格式字符串得到不同的结果:
puts("%#08x" % 29360134).inspect # -> 01c00006
将 Int32 转换为带有前导 0x 的字符串的正确方法是什么?
解决方案
Crystal 目前没有实施该#
标志。您必须像这样自己添加前缀:
puts "0x%08x" % 29360134
您可以在https://github.com/crystal-lang/crystal/blob/1cd278d346b16b9ab42a62a4746086c58a8da2f9/src/string/formatter.cr#L222查看当前实现
请注意如何没有flags.sharp
.
推荐阅读
- excel - Excel VBA - 从剪贴板粘贴文本(错误 1004)
- c - 在没有 fclose() 的情况下调用 fflush() 是否安全
- mongodb - 更新数组猫鼬中的特定值
- python - keras ImageDataGenerator 插值二进制掩码
- python - 在数据框中插入多列
- spark-structured-streaming - Trigger.Once 与 Azure 事件中心
- laravel - Laravel 中 DB::RAW 中的多个 WHERE 子句
- android - 如何将字符串数组文本制作为 HTML 格式的文本
- python - Python: Extracting the lower quantile from a DataFrame
- csv - 在 csv 中添加了未知字符