Информация об изменениях

Сообщение Re: Откуда эта лютая любовь к знаковым целым? от 07.05.2020 22:47

Изменено 11.05.2020 7:29 Erop

Re: Откуда эта лютая любовь к знаковым целым?
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Откуда такое пристрастие, кроме как от лени? Вроде как сколько-нибудь массовых процессоров, где беззнаковые целые поддерживались бы ограниченно, не существует. Есть в этом хоть какое-то рациональное зерно?


Насколько я понял, речь идёт о читабельности кода, в первую очередь, а не о тонкостях оптимизации там или ещё чем-то таком.
В целом тут уже была пара флеймов на тему signed vs unsigned, сопоставимых с Linux vs Windows и "плюсы и минусы STL". Так что там можно почитать в количестве

Если же коротко повторить, что бы не обсуждать в нескольких подветках, то
unsigned -- это кольцо по модулю вычетов известных степеней 2
signed -- это отрезок целых с доопределением операции деления на случай некратных чисел при помощи целочисленного деления и взятия остатка.

Соответственно, если мы где-то можем рассуждать о коде, игнорируя разрядность целых, то есть как о числах в математическом смысле, то этот код более читабельный и высокоуровневый, чем такой, где мы не можем игнорировать разрядность переменных.

И в этом смысле семантика индексов -- это тоже отрезок целого ряда, просто другой. И создавать его поверх отрезка целых [INT_MIN, INT_MAX] намного естественнее, чем над кольцом по модулей вычетов.

И, к концу тезисов, небольшой бонус.
Возможно это тебе понравится больше, чем unsigned
Re: Откуда эта лютая любовь к знаковым целым?
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Откуда такое пристрастие, кроме как от лени? Вроде как сколько-нибудь массовых процессоров, где беззнаковые целые поддерживались бы ограниченно, не существует. Есть в этом хоть какое-то рациональное зерно?


Насколько я понял, речь идёт о читабельности кода, в первую очередь, а не о тонкостях оптимизации там или ещё чем-то таком.
В целом тут уже была пара флеймов на тему signed vs unsigned, сопоставимых с Linux vs Windows и "плюсы и минусы STL". Так что там можно почитать в количестве

Если же коротко повторить, что бы не обсуждать в нескольких подветках, то
unsigned -- это кольцо по модулю вычетов известных степеней 2
signed -- это отрезок целых с доопределением операции деления на случай некратных чисел при помощи целочисленного деления и взятия остатка.

Соответственно, если мы где-то можем рассуждать о коде, игнорируя разрядность целых, то есть как о числах в математическом смысле, то этот код более читабельный и высокоуровневый, чем такой, где мы не можем игнорировать разрядность переменных.

И в этом смысле семантика индексов -- это тоже отрезок целого ряда, просто другой. И создавать его поверх отрезка целых [INT_MIN, INT_MAX] намного естественнее, чем над кольцом по модулей вычетов.

И, к концу тезисов, небольшой бонус.
Возможно это тебе понравится больше, чем unsigned