Engee 文档
Notebook

将数字转换为二进制符号

此示例演示Julia编程语言如何将十进制数转换为二进制并格式化输出。

导言

下面描述的使用二进制数字的算法允许您将数字从十进制转换为二进制。 这是计算机科学中的一个基本过程,因为硬件级别的大多数计算都是在数据的二进制表示上进行的。 二进制表示便于分析数字的位结构、按位运算和理解计算机计算的基础知识。

主要部分

In [ ]:
# 要使用@printf宏,您需要Printf模块。
import Pkg; Pkg.add("Printf")

# 连接Printf模块,提供类似printf的输出
using Printf
   Resolving package versions...
   Installed UnicodePlots ─ v3.8.1
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`

数字到二进制的简单转换没有填充

我们遍历数字0,5,50和9000

In [ ]:
for n in (0, 5, 50, 9000)
    # 我们以"%6i→%s"的格式输出数字及其二进制表示形式
    @printf("%6i%s\n", n, string(n, base=2))  # base=2意味着我们想要得到一个二进制表示。
end
     0 → 0
     5 → 101
    50 → 110010
  9000 → 10001100101000

添加前导零(填充)的转换

这里使用的论点是 pad 为了确保字符串的最小宽度,请在左边填充零。

In [ ]:
# 相同的数字,但现在它们以二进制形式输出最多20个字符的补码。
for n in (0, 5, 50, 9000)
    # 的字符串(。..,pad=N)函数使用,其中N是最小字符数。
    @printf("%6i%s\n", n, string(n, base=2, pad=20))  # pad=20保证字符串长度至少为20个字符
end
     0 → 00000000000000000000
     5 → 00000000000000000101
    50 → 00000000000000110010
  9000 → 00000010001100101000

结论

我们已经考虑了一种使用内置函数将整数从十进制转换为二进制的简单方法 string() 并通过格式化输出 @printf. 我们还学习了如何使用参数指定最小字符串长度 pad,用零填充缺失的字符。 在处理需要按位结构分析的数据或实现与二进制掩码相关的逻辑时,此方法非常有用。 在研究微控制器编程、网络协议或处理低级数据时,这些知识尤其相关。

该示例是使用[Rosetta代码]的材料开发的(https://rosettacode.org/wiki/Binary_digits