我正在学习MATLAB,并且面临从给定双精度中提取最高有效位的问题。我看到了getmsb功能。但是,有没有一个函数可以让我说5个最重要的位?
阿尼尔。
答案 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安装中都不可用。