2026a
# de2bi
将十进制数字转换为二进制向量
函数库: TyCommunication
# 语法
b = de2bi(d)
b = de2bi(d, n)
b = de2bi(d, n, p)
b = de2bi(d, [], p)
b = de2bi(d, ___, flg)
# 说明
b=de2bi(d) 将非负十进制整数 d 转换为二进制行向量。如果 d 是向量,则输出 b 是一个矩阵,其中每一行都是 d 中对应元素的二进制形式。 示例
b=de2bi(d, n, p) 将非负十进制整数 d 转换为以 p 为底的行向量。
b=de2bi(d, ___, flg) 使用 flg 来确定 b 的第一列是否包含最低位或最高位数字。 示例
# 示例
将十进制数字转换为二进制向量
using TyCommunication
b1 = [0 1 0 1 1]
d1 = bi2de(b1)
b=de2bi(d1[1])
b = 1×5 Matrix{Int64}:
0 1 0 1 1
将十进制向量转换为二进制数
将小数 1 到 10 转换成等价的二进制表示法。
d = (1:10)'
b = de2bi(d)
[d' b]
ans = 10×5 Matrix{Int64}:
1 1 0 0 0
2 0 1 0 0
3 1 1 0 0
4 0 0 1 0
5 1 0 1 0
6 0 1 1 0
7 1 1 1 0
8 0 0 0 1
9 1 0 0 1
10 0 1 0 1
将 3 和 9 转换为二进制数。每个数值由一个四元素行表示。
b = de2bi([3 9])
b = 2×4 Matrix{Int64}:
1 1 0 0
1 0 0 1
重复转换,将列数设置为 5。现在,输出结果在第五列中填充了零。
bb = de2bi([3 9], 5)
bb = 2×5 Matrix{Int64}:
1 1 0 0 0
1 0 0 1 0
将十进制向量转换为三进制数
将小数 1 至 6 转换为基数为 3 的等价数。将最左边的位设置为最有效数字。
using TyCommunication
d = (1:6)'
t = de2bi(d, [], 3, "left-msb")
[d' t]
ans = 6×3 Matrix{Int64}:
1 0 1
2 0 2
3 1 0
4 1 1
5 1 2
6 2 0
将十进制数转换为二进制
本例演示了如何将小数转换成二进制数的 2 进制数。
using TyCommunication
d_array = [1 2 3 4];
使用 de2bi 函数将十进制数组转换为二进制数组。指定最有意义的数字为最左边的元素,并将所需的列数设置为 5。输出将变成一个 4 × 5 的矩阵,其中每一行都对应输入中的一个十进制值。由于 d_array 中最大的十进制值可以用 3 列来表示,de2bi 会在指定的最有效位上额外填充两列零。如果指定的列数太少,转换将失败。
b_array = de2bi(d_array, 5, "left-msb")
b_array = 4×5 Matrix{Int64}:
0 0 0 0 1
0 0 0 1 0
0 0 0 1 1
0 0 1 0 0
b_array = de2bi(d_array, 5, "right-msb")
b_array = 4×5 Matrix{Int64}:
1 0 0 0 0
0 1 0 0 0
1 1 0 0 0
0 0 1 0 0
如果不指定列数,则列数正好是表示输入的最大小数所需的列数。
b_array = de2bi(d_array, "left-msb")
b_array = 4×3 Matrix{Int64}:
0 0 1
0 1 0
0 1 1
1 0 0
指定最左有效位的输出行对应于:
b_array = de2bi(d_array, "right-msb")
b_array = 4×3 Matrix{Int64}:
1 0 0
0 1 0
1 1 0
0 0 1
指定最右有效位的输出行对应于:
# 输入参数
d - 十进制输入非负整数 | 向量 | 矩阵
十进制输入,指定为非负整数、向量或矩阵。如果d是矩阵,则将其视为列向量d[:]。
TIP
为确保准确转换,d必须小于或等于
数据类型:Int64
n - 输出列数正整数标量
指定为正标量的输出列数。如有必要,d的二进制表示用额外的0填充。
数据类型:Int64
p - 基数2(默认)| 正整数标量
flg - MSB 标志"right-msb"(默认)| "left-msb"
# 输出参数
b - 二进制输出向量 | 矩阵
d的二进制表示,以行向量或矩阵形式返回。
数据类型:Int64