Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Чего ты добьешься, перейдя на unsigned ? Увеличения диапазона положительных чисел в 2 раза ? Смысла в этом немного, так как 2 миллиарда или 4 миллиарда — как правило, черт один, вполне хватит. А если не хватит, то надо на 64 бита переходить, а не бороться за один бит.
"640kB хватит всем"
Те люди, кто для знаковых индексов обычно используют int, используют его же не задумываясь для количества элементов в контейнеров, размера и
позиции в файловых потоках. Но 2 гигабайта для бинарных данных по нынешним временам не так уж и много. И я уже пару раз сталкивался с таким ограничением.
Например, в
Google Protocol Buffers v3.2.0 облагодетельствовали: "The default parsing byte size limit has been raised from 64MB to 2GB"].
PD>А больше я ничего не вижу. Зато я знаю, что если в результате арифметики с положительными числами результат оказался отрицательным там, где такого не должно быть,то ошибку надо искать в алгоритме, а не в неявных преобразованиях.
Кажется это справедливо и для беззнаковых — результат сложения или умножения не может быть меньше операнда.