2016-02-18 2 views
0

я хочу преобразовать код MatLab в C# .И в MatLab кодкак получить следующую более высокую мощность 2?

nfft=2^nextpow2(nn);

где NEXTPOW2(N) означает Далее высокую мощность 2. в MATLAB.

так как мы выполняем одну и ту же функцию сами по себе в коде C# или с помощью ilnumerics Lab. ?

+1

Взгляните на http://stackoverflow.com/questions/15508319/call-a-generic-method-with-t-type-parameter – 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