【问题标题】:Matlab binary encodingMatlab 二进制编码
【发布时间】:2011-05-08 19:40:00
【问题描述】:

我有一个包含一系列整数的向量,我想做的是获取所有数字,将它们转换为相应的二进制形式,然后将所有生成的二进制值连接在一起。有什么简单的方法吗?

例如a=[1 2 3 4] --> b=[00000001 00000010 00000011 00000100] --> c=00000001000000100000001100000100

【问题讨论】:

    标签: matlab encoding binary


    【解决方案1】:

    试试:

    b = dec2bin(a)
    

    【讨论】:

      【解决方案2】:

      正如其他答案所指出的,函数DEC2BIN 是您必须解决此问题的一种选择。但是,正如 this other SO question 所指出的,在转换大量值时,它可能是一个非常慢的选择。

      为了更快的解决方案,您可以改用函数BITGET,如下所示:

      a = [1 2 3 4];               %# Your array of values
      nBits = 8;                   %# The number of bits to get for each value
      nValues = numel(a);          %# The number of values in a
      c = zeros(1,nValues*nBits);  %# Initialize c to an array of zeroes
      for iBit = 1:nBits           %# Loop over the bits
        c(iBit:nBits:end) = bitget(a,nBits-iBit+1);  %# Get the bit values
      end
      

      结果c 将是一个由0 和1 组成的数组。如果你想把它变成一个字符串,你可以使用函数CHAR,如下:

      c = char(c+48);
      

      【讨论】:

        【解决方案3】:

        是的,使用dec2bin,后跟字符串连接。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-11
          • 2014-10-09
          • 1970-01-01
          • 2017-05-25
          • 2014-08-09
          相关资源
          最近更新 更多