Открытие проекта ECA

Друзья, наконец-то открывается сайт, который я начал делать довольно давно. Это учебный проект Exploring Computer Arithmetic (ECA), который посвящён самым разным вопросам, связанным с компьютерной арифметикой.

Читать далее «Открытие проекта ECA»

Беседы о программировании 020 :: Функции min(a,b) и max(a,b) для чисел без знака


Здесь рассматриваются функции определения минимума и максимума из двух чисел без знака. Данная статья — прямое продолжение статьи про эти же функции со знаком. Поэтому если вы её не читали, то лучше прочитать, так как здесь показана лишь разница метода 4 для знаковых и беззнаковых чисел, а также сводная таблица сравнения для всех вместе.

Читать далее «Беседы о программировании 020 :: Функции min(a,b) и max(a,b) для чисел без знака»

Беседы о программировании 019 :: Функции min(a,b) и max(a,b) для чисел со знаком

Здесь рассматриваются функции определения минимума и максимума из двух чисел со знаком. Приводится 7 реализаций как с ветвлениями, так и без них, как для общего случая, так и для некоторых частных случаев. Код программ приведён для случая 32-битовых чисел. В конце выполнено сравнение всех функций между собой и обнаружено забавное свойство операции сравнения. Текст статьи полностью повторяет содержание видеозаписи.

Читать далее «Беседы о программировании 019 :: Функции min(a,b) и max(a,b) для чисел со знаком»

Беседы о программировании 017 :: Функция abs(x) — абсолютное значение числа

Не менее важной чем sign(x) для целых чисел является функция взятия абсолютного значения abs(x). Существуют разные варианты реализации этой функции (как с ветвлениями, так и без них) и мы, как обычно, изучим их реальную стоимость. Ниже в статье излагается то же, что на видео.

Читать далее «Беседы о программировании 017 :: Функция abs(x) — абсолютное значение числа»

Беседы о программировании 016 :: Функция sign(x) — определение знака переменной

Ниже по тексту излагается то же самое, что на видео. Это сделано для удобства посетителей — кому как удобно, так и изучайте материал.

Функция определения знака очень важна для многих прикладных задач, поэтому существует довольно много вариантов её реализации. Мне известно 7 вариантов, некоторые из которых, правда, очень похожи друг на друга. Тем не менее, я задумался: который из вариантов лучше? Давайте разбираться.

Читать далее «Беседы о программировании 016 :: Функция sign(x) — определение знака переменной»

Беседы о программировании 004 :: Остаток от деления на степень двойки ± 1

Рассматривается алгоритмический трюк, позволяющий выполнить быстрый поиск остатка от деления на числа вида 2n-1 и 2n+1. Показана общая идея, рассмотрены частные случаи деления 32-битовых и 64-битовых чисел, выполнено сравнение с обычной процедурой нахождения остатка.

Читать далее «Беседы о программировании 004 :: Остаток от деления на степень двойки ± 1»