Здравствуйте, vopl, Вы писали:
V>А почему именно [INT_MIN, INT_MAX], именно int? Почему не [SHRT_MIN, SHRT_MAX] и не [PTRDIFF_MIN, PTRDIFF_MAX]? Вот ты хитришь. У себя взял и преподнес определенность размера как "INT", а кольцо модулей снабдил характеристикой "... какой-то неизвестной степени двойки".
Потому, что при обычном использовании int вместо чисел, не важно чему равно INT_MIN и INT_MAX. Важно, что это какая-то не особо известная, но достаточно большая константа.
Если важно, тогда надо выбрать правильный тип в любом случае.
А с беззнаковыми эта "неизвестная, но достаточно большая константа" становится актуальной при любом вычитании
PTRDIFF_MIN -- вообще странно использовать как просто число. Это же специальный тип, для специальных целей...
V>Еще вопрос, почему акцент делается на то что беззнаковые — это именно кольцо модулей по вычетам? Что такого плохого в кольцах, что по ним надо бритвой ударять? Ну, кольцо, ну и пусть, ведь в оригинальном вопросе ТС не про кольцо а про бесполезность знака для таких штук как:
Ну так я просто указал ЧТО КОНКРЕТНО реализуют знаковые и беззнаковые в С...
Ты можешь поверх этих моделей натянуть какие-то свои. В С, например, выражение 1 < 2 будет иметь тип int, то есть знаковое целое.
V>V>счетчики, индексы и прочие... размеров, количеств и прочего...
Естественный взгляд на размер последовательности -- разность позиций краёв. Странно считать, что там модули по вычету логичнее, чем отрезок целочисленного ряда
V>И последний: если бы int тоже был бы закольцован, то есть при переполнении просто бы отбрасывались переполненные биты, как, например, в Расте — ты все равно бы знаковым отдал предпочтение?
Конечно. За исключением логики оптимизатора, int и так на x86 закольцован
Суть в том, что в подавляющем числе мест, где нужны числа, int просто логичнее, чем беззнаковое. И интуитивно понятнее, и безопаснее и всё такое.
Обсуждаемый тезис, про количества с индексами предполагает, что беззнаковые -- это как бы подмножество целых. А это не так. Они не подмножества, а просто другие. Так вышло по историческим причинам. Увы, но таки так вышло.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском