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) 具有 n 列的输出。


b=de2bi(d, n, p) 将非负十进制整数 d 转换为以 p 为底的行向量。


b=de2bi(d, [ ], p) 指定基数 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(默认)| 正整数标量

输入b的基数,指定为大于或等于2的整数。

  • 如果d是一个向量,则输出b是一个矩阵,其中每一行都是d中对应元素的基数p形式。
  • 如果d是一个矩阵,de2bi会将其视为向量d[:]。

数据类型:Int64

flg - MSB 标志
"right-msb"(默认)| "left-msb"

MSB标志,指定为"right-msb"或"left-msb"。

  • "right-msb":表示二进制输出的右(或最后)列,b作为最高有效位(或最高位)。
  • "left-msb":表示二进制输出的左(或第一)列,b作为最高有效位(或最高位)。

数据类型:String

# 输出参数

b - 二进制输出
向量 | 矩阵

d的二进制表示,以行向量或矩阵形式返回。

数据类型:Int64