1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
| sheka |
1.12.2011 19:48
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Максимально возможное значение типа
unsigned int j = (1 << (sizeof(имя типа) << 3)) - 1;как избавиться от вычисления 1 << (sizeof(имя типа) << 3) т.к. warning: left shift count >= width of type ? Можно, конечно, так, но это не красиво: unsigned int j = ((unsigned int)(1 << ((sizeof(int *) << 3) - 1)) - 1) + (1 << ((sizeof(int *) << 3) - 1));Ну или просто обмануть, умножив на 2. Сообщение отредактировано: sheka - 1.12.2011 19:59 |
![]() ![]() |
| IUnknown |
1.12.2011 19:59
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Не пользоваться неправильным методом вычисления. Допустим, размер типа - 4 байта (тот же int). Что выдает твоя формула?
(1 << (4 << 3)) - 1 = (1 << 32) - 1 = 4294967295 (для этого тоже нужны доп. телодвижения, чтобы получить это число, но допустим, получил). Но макс. значение типа int вполовину меньше, он же знаковый... |
sheka Максимально возможное значение типа 1.12.2011 19:48
sheka Для беззнаковых. 1.12.2011 20:01
IUnknown long long maxval = (static_cast<long long... 1.12.2011 20:02
sheka Т.е. культурного решения, кроме как взять тип боль... 1.12.2011 20:07
IUnknown См. выше, и не изобретай велосипед. "Все уже ... 1.12.2011 20:08
TarasBer unsigned long i = -1
получили максимальное значени... 2.12.2011 9:18![]() ![]() |
|
Текстовая версия | 11.12.2025 3:36 |