Re[2]: Откуда эта лютая любовь к знаковым целым?
От: Evgeny.Panasyuk Россия  
Дата: 09.05.20 10:57
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Если же коротко повторить, что бы не обсуждать в нескольких подветках, то

E>unsigned -- это кольцо по модулю вычетов известных степеней 2
E>signed -- это отрезок целых с доопределением операции деления на случай некратных чисел при помощи целочисленного деления и взятия остатка.
E>Соответственно, если мы где-то можем рассуждать о коде, игнорируя разрядность целых, то есть как о числах в математическом смысле, то этот код более читабельный и высокоуровневый, чем такой, где мы не можем игнорировать разрядность переменных.
E>И в этом смысле семантика индексов -- это тоже отрезок целого ряда, просто другой. И создавать его поверх отрезка целых [INT_MIN, INT_MAX] намного естественнее, чем над кольцом по модулей вычетов.

Не не не, Дэвид Блэйн, меня ты не проведёшь.
Там где проявляется закольцованность у безнаковых, у знаковых вообще случается undefined behaviour (речь же о C++?). Причём для индексов случается чаще, в силу меньшего положительного диапазона.
В одном случае имеем чёткую модель кольца, а в другом даже магмы нет, ибо операции не замкнуты
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.