Main Content

num2bin

使用 quantizer 对象将数字转换为二进制表示

说明

示例

y = num2bin(q,x) 使用 quantizer 对象 q 指定的数据类型属性,将数值数组 x 转换为在 y 中返回的二进制字符向量。

如果 x 是包含数值矩阵的元胞数组,则 y 将是包含二进制字符串的相同维数的元胞数组。如果 x 是结构体,则 x 的每个数值字段都会转换为二进制。

[y1,y2,…] = num2bin(q,x1,x2,…) 将数值矩阵 (x1, x2 …) 转换为二进制字符串 (y1, y2 …)。

示例

全部折叠

使用 quantizer 对象指定的属性将数值矩阵转换为二进制字符向量。

x = magic(3)/9
x = 3×3

    0.8889    0.1111    0.6667
    0.3333    0.5556    0.7778
    0.4444    1.0000    0.2222

q = quantizer([5,3])
q =


        DataMode = fixed
       RoundMode = floor
    OverflowMode = saturate
          Format = [5  3]
y = num2bin(q,x)
y = 9x5 char array
    '00111'
    '00010'
    '00011'
    '00000'
    '00100'
    '01000'
    '00101'
    '00110'
    '00001'

使用 quantizer 对象中指定的属性在二进制字符向量和数值数组之间转换。

将数值数组转换为二进制字符串

创建一个 quantizer 对象,指定字长为 4 位,小数长度为 3 位。quantizer 对象的其他属性采用指定有符号定点数据类型、朝负无穷方向舍入和溢出时饱和的默认值。

q = quantizer([4 3])
q =


        DataMode = fixed
       RoundMode = floor
    OverflowMode = saturate
          Format = [4  3]

创建一个数值数组。

[a,b] = range(q);
x = (b:-eps(q):a)
x = 1×16

    0.8750    0.7500    0.6250    0.5000    0.3750    0.2500    0.1250         0   -0.1250   -0.2500   -0.3750   -0.5000   -0.6250   -0.7500   -0.8750   -1.0000

使用 quantizer 对象 q 指定的属性将数值向量 x 转换为二进制表示。请注意,num2bin 始终以列形式返回二进制表示。

b = num2bin(q,x)
b = 16x4 char array
    '0111'
    '0110'
    '0101'
    '0100'
    '0011'
    '0010'
    '0001'
    '0000'
    '1111'
    '1110'
    '1101'
    '1100'
    '1011'
    '1010'
    '1001'
    '1000'

使用 bin2num 执行逆运算。

y = bin2num(q,b)
y = 16×1

    0.8750
    0.7500
    0.6250
    0.5000
    0.3750
    0.2500
    0.1250
         0
   -0.1250
   -0.2500
      ⋮

将二进制字符串转换为数值数组

所有小数形式的 3 位定点 2 的补码数由下式给出:

q = quantizer([3 2]);
b = ['011  111'
     '010  110'
     '001  101'
     '000  100'];

使用 bin2num 可查看这些值的等效数值。

x = bin2num(q,b)
x = 4×2

    0.7500   -0.2500
    0.5000   -0.5000
    0.2500   -0.7500
         0   -1.0000

输入参数

全部折叠

要用于转换的数据类型属性,指定为 quantizer 对象。

示例: q = quantizer([16 15]);

数值输入数组,指定为标量、向量、矩阵、多维数组、元胞数组或结构体。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | struct | cell

提示

  • num2binbin2num 互为逆运算。请注意,num2bin 始终以列形式返回二进制表示。

算法

  • 定点二进制表示采用 2 的补码形式。

  • 浮点二进制表示采用 IEEE® 标准 754 样式。

版本历史记录

在 R2006a 之前推出