主要内容

de2bi

(不推荐)将十进制转换为以 P 为基数

不建议使用 de2bi。请改用 int2bit 函数。有关详细信息,请参阅版本历史记录

说明

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 的第一列是包含最低有效位还是最高有效位。

示例

示例

全部折叠

此示例说明如何将十进制数转换为其以 2 为基数的等效二进制数。

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

     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

     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

     0     0     1
     0     1     0
     0     1     1
     1     0     0

指定最左侧有效位的输出行对应于:

1 = 0 ( 2 2 ) + 0 ( 2 1 ) + 1 ( 2 0 )

2 = 0 ( 2 2 ) + 1 ( 2 1 ) + 0 ( 2 0 )

3 = 0 ( 2 2 ) + 1 ( 2 1 ) + 1 ( 2 0 )

4 = 1 ( 2 2 ) + 0 ( 2 1 ) + 0 ( 2 0 )

b_array = de2bi(d_array,'right-msb')
b_array = 4×3

     1     0     0
     0     1     0
     1     1     0
     0     0     1

指定最右侧有效位的输出行对应于:

1 = 1 ( 2 0 ) + 0 ( 2 1 ) + 0 ( 2 2 )

2 = 0 ( 2 0 ) + 1 ( 2 1 ) + 0 ( 2 2 )

3 = 1 ( 2 0 ) + 1 ( 2 1 ) + 0 ( 2 2 )

4 = 0 ( 2 0 ) + 0 ( 2 1 ) + 1 ( 2 2 )

输入参数

全部折叠

十进制输入,指定为非负整数、向量或矩阵。如果 d 是矩阵,则将其视为列向量 d(:)

注意

为确保准确转换,d 必须小于或等于 252

数据类型: double | single | integer | fi

输出列数,指定为正标量。如有必要,用额外的零填充 d 的二进制表示。

数据类型: double | single

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

  • 如果 d 是向量,则输出 b 是矩阵,其中每行是 d 中对应元素的以 p 为基数的形式。

  • 如果 d 是矩阵,de2bi 将其视为向量 d(:)

数据类型: double | single

MSB 标志,指定为 'right-msb''left-msb'

  • 'right-msb' - 表示二进制输出 b 的右侧(即最后一个)列为最高有效位(即最高位)。

  • 'left-msb' - 表示二进制输出 b 的左侧(即第一个)列为最高有效位(即最高位)。

数据类型: char | string

输出参量

全部折叠

d 的二进制表示,以行向量或矩阵形式返回。输出的数据类型与输入相同。

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出

全部折叠

另请参阅

|