побитовая арифметическая инструкция - PullRequest
1 голос
/ 17 февраля 2012

Я ищу учебники, которые рассказывают о побитовых арифметических операциях, таких как сложение, вычитание, умножение и деление, возможно, других более сложных операторов, таких как модульные, обратные модульные и т. Д.реализовать библиотеку больших чисел для встроенной системы, в которой такой библиотеки нет.Поэтому я хотел бы узнать, как обрабатывать большие целые числа со знаком и как выполнять арифметические вычисления, манипулируя битами.Теперь единственная идея, которую я имею, - это хранить мое большое целое в большом массиве uint8_t с 1 битом, зарезервированным для знака.Например, если мне нужно 160-разрядное целое число, тогда мне нужен массив uint8_t num[21].

Какие базовые знания мне необходимо изучить?Я искал в Google, но я не нашел много объяснений.Точнее, я не знаю, какие ключевые слова мне нужно использовать.

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

Ответы [ 3 ]

1 голос
/ 17 февраля 2012

Интересующая вас тема называется арифметикой произвольной точности.

Дополнительную информацию можно найти здесь: http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic

Что касается "базовых знаний": вам нужно будет изучить алгоритмы выполнения арифметики. Вам также понадобится достаточно компетентное понимание динамического управления памятью. Я подозреваю, что ваш подход с использованием массивов может быть очень неуклюжим и расточительным.

1 голос
/ 17 февраля 2012

Несколько недель назад, когда я бродил по переполнению стека, я нашел эту статью , возможно, это может вам помочь.

К сожалению, я не увидел арифметическую операцию в первой ссылке, которую я разместил.

Для арифметической операции смотрите здесь .

Электроника такая же, как в программировании, та же концепция, поскольку логический элемент = логическая операция. В разделе "см. Также" этой ссылки есть еще кое-что, чтобы помочь. (особенно двоичный множитель)

PM Мне, если вы преуспеете в том, что вы делаете, я также ищу узнать, как это работает.

0 голосов
/ 17 февраля 2012

На самом деле нет такой вещи, как побитовая арифметика (сложение, вычитание и т. Д.), Но вы можете реализовать их, используя побитовые операции (И, ИЛИ, XOR, логическое смещение влево, логическое смещение вправо, арифметическое смещение вправо).

См .: http://en.wikipedia.org/wiki/Bitwise_operation

...