Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> двоичный код 
:(
    Опции темы
Krol01
Дата 6.12.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Добрый день.
Нужна помощь по сложению чисел в двоичном коде. В общем то проблема состоит в сложении отрицательных чисел. На сколько я понял, то отрицательное переводится в дополнительный код, но самой сути как это делать не понял. Поискал в гугле, но там все размыто, запутался еще больше :(

Нужно сложить два числа: 16+ (-32). 
16 =10000, 32 =100000. А вот выразить число -32 затрудняюсь. 
Если не трудно, то распишите все от и до как делать, буду очень благодарен.
PM MAIL   Вверх
bars80080
Дата 6.12.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 4
Всего: 315



а на каком языке вам это нужно?

потому что на бумажке, это так и выглядит: 10000 - 100000 = -10000
PM MAIL WWW   Вверх
Krol01
Дата 6.12.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



ну как бы для перевода отрицательного числа в двоичный код необходимо перевести его в дополнительный...вот я и спрашивал как это сделать.
PM MAIL   Вверх
bilbobagginz
Дата 6.12.2009, 15:24 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 10
Всего: 317



Krol01, существует 2 основных вида хранения отрицательных двоичных чисел - 
"1's complement" - дополнение до 1-го (Когда отрицательные числа - это логический NOT относительно положительных)
"2's complement" - дополнение до 2-х (когда отрицательные числа - это сначала делается NOT, а потом добавляется 1)
перевод из 2's compl. обратно делается в том же порядке - отрицательному числу делается NOT и добавляется 1, и результат - величина ортицательного числа предсавленного нам.

выбрав метод "дополнение до 2-х":
нужно понимать, что есть 2 пути работы - когда ты знаешь диапазон чисел, и когда не знаешь.
путь 1 (не зная диапазон)
то у отрицательных числе, без обозначения ширины самая главная цифра определяет значение всех цифр левее её.
т.е. если число положительное - у него слева будет 0. а отрицательное - 1.
т.е. если число положительное - его пишут так
х=010000
а то же отрицательное ( (!х)+1 )
101111+1=110000 (самая левая единца - это место начиная с к-рого идут влево только единицы ...111111110000)
-х=110000
теперь сложение:
   х+-х=010000+110000=0
---
путь 2 (если ты ЗНАЕШЬ, в каком диапазоне работаешь)
у любого числа (которое можно представить при помощи данной ширины)
есть ширина, напр. у интел процессоров для целых чисел (signed int) используется 32 бита.
Код

 16 = 0000 0000 0000 0000 0000 0000 0001 0000
-32 = 1111 1111 1111 1111 1111 1111 1110 0000
      ---------------------------------------
      1111 1111 1111 1111 1111 1111 1111 0000

перевод из 2's complement в десятиричную систему: -16.


Это сообщение отредактировал(а) bilbobagginz - 6.12.2009, 16:08


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Krol01
Дата 6.12.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



bilbobagginz, Спасибо, теперь разобрался  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Разные вопросы"
Smartov

Сюда нужно постить только темы, которые нельзя отнести ни к одному из существующих разделов. Если вы не уверены, то просмотрите еще раз заголовки форумов, карту форума или попробуйте воспользоваться поиском.
Если вы все же не смогли найти подходящего раздела - создавайте тему здесь.


С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разные вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0633 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.