Технический форум
Вернуться   Технический форум > Программирование > Форум программистов


Ответ
 
Опции темы Опции просмотра
Старый 24.12.2010, 17:23   #1 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию Арифметические операции в двоичной системе счисления

Всем привет. подскажите может кто знает алгоритм вычитания в двоичной системе счисления? под число отведено 8 бит(массив)
kreol вне форума   Ответить с цитированием

Старый 24.12.2010, 17:23
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В каком то из этих постов проблема возможно решена

АС на тыл в системе 5.1
Системы счисления
Убираем «Ошибка при выполнении операции» в Java на SE
Помогите написать программу на Паскаль на системы счисления

Старый 25.12.2010, 00:04   #2 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Это надо делать поразрядно, в цикле. стандартных алгоритмов для этого не знаю
MrSTEP вне форума   Ответить с цитированием
Старый 25.12.2010, 00:11   #3 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

ну эт понятно).
с таким 00010100 - 00010010 еще нормельно.
но дело в том, что я не могу придумать как оргинизовать вычитание например такое: 00010001 - 00000111. или 00110001 - 00010011 и т.д.
kreol вне форума   Ответить с цитированием
Старый 25.12.2010, 00:25   #4 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Давайте по порядку. Рассматриваем число с конца. Если значение данной цифры меньше значения вычитаемой, то в результат записываем 0, и ищем ближайшее число слева, которое равно единице, заменяя его на ноль, а все просмотренные - единицами. Прокрутите в голове алгоритм вычитания на бумаге - поймете задумку
MrSTEP вне форума   Ответить с цитированием
Старый 28.12.2010, 13:02   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Правила вычитания те же самые, что и в десятичной СС, только вы работаете не с 10 цифрами, а лишь с двумя (1 и 0). Соответственно, тут надо учитывать переходы из старших разрядов и т.д.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 28.12.2010, 15:26   #6 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

вот с этими переходами и проблема есть(
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:40.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.