如何获得二进制数的反向(不补充或反向)

时间:2014-10-09 05:41:45

标签: matlab

我正在matlab中实现cooley-tuckey fft(raddix - 2 DIF / DIT)算法。对于位反转我想要反转二进制数。所以任何人都可以建议我如何得到binary number(like 100111 -> 111001)的逆转。从事fft实施工作的人也可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

Topic: How to do bit reversal in Matlab?

  

如果您使用的是双精度浮点('double')数字   这是整数,你可以这样做:

     

dr = bin2dec(fliplr(dec2bin(d,n))); dr中的%位是相反的顺序

     

其中n是要反转的位数,并且其中0 <= d <1。 2 ^ N

     

只要具体而言,您将不会遇到精确问题   整数不超过52位。

Re: How to do bit reversal in Matlab?

  

你需要扭转的数字有多大?我可以问一下   是它的目的吗?也许有一种更有效的方法来解决问题   整个问题。如果数字很大,你可以将这些位存储为   一个字符串。要反转它,只需向后读取字符串!或者使用   fliplr()。

(可能有更好的地方可以问。)

如果是VHDL,我会建议使用'REVERSE'RANGE的别名。

答案 1 :(得分:-1)

取自帮助部分;

Y = swapbytes(X)反转数组X中每个元素的字节顺序,将little-endian值转换为big-endian(反之亦然)。输入数组必须包含所有完整的非复数数字元素。