Re[5]: Откуда эта лютая любовь к знаковым целым?
От: Erop Россия  
Дата: 07.05.20 11:13
Оценка:
Здравствуйте, 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 просто логичнее, чем беззнаковое. И интуитивно понятнее, и безопаснее и всё такое.

Обсуждаемый тезис, про количества с индексами предполагает, что беззнаковые -- это как бы подмножество целых. А это не так. Они не подмножества, а просто другие. Так вышло по историческим причинам. Увы, но таки так вышло.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.