Арифметические операции в двоичной системе счисления
Всем привет. подскажите может кто знает алгоритм вычитания в двоичной системе счисления? под число отведено 8 бит(массив)
|
Это надо делать поразрядно, в цикле. стандартных алгоритмов для этого не знаю
|
ну эт понятно).
с таким 00010100 - 00010010 еще нормельно. но дело в том, что я не могу придумать как оргинизовать вычитание например такое: 00010001 - 00000111. или 00110001 - 00010011 и т.д. |
Давайте по порядку. Рассматриваем число с конца. Если значение данной цифры меньше значения вычитаемой, то в результат записываем 0, и ищем ближайшее число слева, которое равно единице, заменяя его на ноль, а все просмотренные - единицами. Прокрутите в голове алгоритм вычитания на бумаге - поймете задумку :)
|
Правила вычитания те же самые, что и в десятичной СС, только вы работаете не с 10 цифрами, а лишь с двумя (1 и 0). Соответственно, тут надо учитывать переходы из старших разрядов и т.д.
|
вот с этими переходами и проблема есть(
|
Часовой пояс GMT +4, время: 23:03. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.