MATLAB:提取最重要的位

时间:2011-04-16 22:35:20

标签: matlab bits

我正在学习MATLAB,并且面临从给定双精度中提取最高有效位的问题。我看到了getmsb功能。但是,有没有一个函数可以让我说5个最重要的位?

阿尼尔。

1 个答案:

答案 0 :(得分:1)

现在已经很晚了,所以我确信有更好的解决方案。无论如何,这似乎是这样做的:

A = rand(1, 1) * 10000
nBits = 5
curBits = ceil(log2(A))
toShift = curBits - nBits
wantedMSB = fix(A / 2^toShift) % This is still a double, feel free to cast.
dec2bin(wantedMSB)             % Result in bitstring form.

或者,作为一个班轮:

A = rand(1, 1) * 10000
nBits = 5
wantedMSB = fix(A / 2^(ceil(log2(A)) - nBits))

[编辑] 顺便说一句,getmsb函数是定点工具箱的一部分,它可能在每个MATLAB安装中都不可用。