Простой способ вычисления целочисленных степеней двойки в C #?

Я уверен, что это не так сложно, как я предполагаю.

Хотелось бы использовать что-то эквивалентное Math.Pow (double, double) , но выводит целое число. Меня беспокоят ошибки округления с плавающей точкой.

Лучшее, что я могу придумать, это:

uint myPower = 12;
uint myPowerOfTwo = (uint)Math.Pow(2.0, (double)myPower);

Я подумал об этом:

uint myPowerOfTwo = 1 << myPower;    // doesn't work

но я получаю сообщение об ошибке, с которым нельзя использовать оператор «<<» операнды типа int или и uint.

Есть предложения? Как всегда, спасибо.

12
задан John 31 March 2011 в 22:33
поделиться