2016-02-18 44 views
0

我想在Matlab代碼如何獲得2的更高次冪?

nfft=2^nextpow2(nn);

NEXTPOW2(N)哪裏裝置接着更高的在MATLAB 2.功率變換的matlab代碼到C#。而 。

所以我們如何在c#代碼中自己完成相同的功能,或者通過ilnumerics Lab的幫助。 ?

+1

看看http://stackoverflow.com/questions/15508319 /調用帶t型參數的通用方法 – Antrim

回答

3

This可能是最有效的方式,也是前面提到的here on SO

unsigned int v; // compute the next highest power of 2 of 32-bit v 

v--; 
v |= v >> 1; 
v |= v >> 2; 
v |= v >> 4; 
v |= v >> 8; 
v |= v >> 16; 
v++; 
+0

非常好的示例 – 07012220

+1

如果這是最適合您的答案,請考慮接受它。 –

+0

是的,謝謝 – 07012220

3

如果我理解正確你的問題:

x = 129; 
NextPow = round(2^ceil(log2(x))) % Gives 256 for x = 129 
           % Gives 2 for x = 2 
           % Gives 16 for x = 15