Сергей Холодилов (fat_crocodile) wrote,
Сергей Холодилов
fat_crocodile

Очень простую штуку объяснили, как-то мимо проходила.

В книжках про ассемблер и прочее такое пишут про "представление отрицательных чисел в дополнительном коде", и потом там у них особые правила сложения-умножения, обоснования, почему это работает и всё такое.

Так вот, это всё от математической безграмотности. Этот самый дополнительный код это в точности представление по модулю 2n.

Ну, -1 == 255 mod 256 -- и оно ровно так и получается двоично.

И остальные отрицательные тоже так же.

То есть мы просто всю дорогу оперируем с остатками, складываем их, вычитаем и умножаем по общим правилам (с делением хуже), а кто там из них представляет собой отрицательное число, а кто положительное, нам надо помнить
- при сравнении
- при делении
- если расширяем число, т.е. приводим к остатку по другому модулю, большему, чем исходный
- может ещё есть пара случаев, которые я забыл
Tags: математика, программинг
Subscribe

  • (no subject)

    Наконец вроде осознал, когда и зачем аксиома выбора нужна, а когда она не нужна. Если у нас есть одно непустое множество X и нам нужно взять…

  • CRC-3: как его обойти

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

  • CRC-2: немного алгебры

    Благодаря разговору с kodt_rsdn в прошлом посте, удалось переформулировать происходящее, добавив туда немного математического смысла.…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments

  • (no subject)

    Наконец вроде осознал, когда и зачем аксиома выбора нужна, а когда она не нужна. Если у нас есть одно непустое множество X и нам нужно взять…

  • CRC-3: как его обойти

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

  • CRC-2: немного алгебры

    Благодаря разговору с kodt_rsdn в прошлом посте, удалось переформулировать происходящее, добавив туда немного математического смысла.…