Code
unsigned long long GetMaxValue(int NBit) {
unsigned long long Value{};
for(NBit--; NBit >= 0; NBit--) Value |= ((unsigned long long)1 << NBit);
return Value;
}
теперь все правильно, но я все таки не пойму изза чего у 32 битного числа получалось такое большое число? изаа little-endian?Добавлено (05.11.2012, 18:45)
---------------------------------------------
Code
unsigned long long GetMaxValue(int NBit) {
return ((unsigned long long)1 << NBit) - 1;
}
почему-то выдает 0 для 8-ми байтовой переменной)Добавлено (05.11.2012, 18:48)
---------------------------------------------
кажись понял)) если сдвинуть 1 на 64 бита влево, то он уйдет за пределы переменной, но ведь - 1 в итоге дает все равно 2^64 - 1