Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Перевод числа из 10-ричной системы


Автор: SIMarOK 27.10.2004, 20:25
Помогите люди добрые...ломаю над этим голову уже несколько часов...как мне вычесть 483-384?
Вот что я получаю:
483=0001.1110.0011
384=0001.1000.0000

Инвентрую -384:
0001.1000.0000=1110.0111.1110

И собственно складываю:
0001.1110.0011
+
1110.0111.1110
=1.0000.0110.0001
И инвертирую полученный результат обратно = 1110.1111.1001.1111 - и это получается очень большое число...а должно быть 99:(
Помогите пожалуйста

Автор: bagira 27.10.2004, 21:59

1.

000111100011
-
000110000000
--------------------
000001100011

вот такое число получается при простом вычитании (если ничего не конвертировать)
это и есть 99 в десятичной системе

2. Если же ты хочешь непременно конвертировать, то это будет так:

-384 - это
11111111111111111111111010000000

а вовсе не то число, которое у тебя

Итак:
11111111111111111111111010000000
+
00000000000000000000000111100011
---------------------------------------------------
00000000000000000000000001100011

опять же оно самое... 99

:rolleyes

Автор: cardinal 27.10.2004, 22:06
SIMarOK, не плоди одну и ту же тему по всему форуму!
Какие "алгоритмы" нафиг, когда ты еще основы не усвоил? :rtfm

Автор: SIMarOK 27.10.2004, 22:28
Цитата(cardinal @ 27.10.2004, 22:06)
SIMarOK, не плоди одну и ту же тему по всему форуму!
Какие "алгоритмы" нафиг, когда ты еще основы не усвоил? :rtfm

Просто не знал куда написать, сорри:(
Спасибо за помощь :)

Автор: SIMarOK 27.10.2004, 23:31
Цитата(bagira @ 27.10.2004, 21:59)
11111111111111111111111010000000

А почему первые 10000000 не конвертировались, а только после?

Автор: turilin 6.12.2006, 17:01
Цитата(bagira @ 27.10.2004,  21:59)
1.

000111100011
-
000110000000
--------------------
000001100011

вот такое число получается при простом вычитании (если ничего не конвертировать)
это и есть 99 в десятичной системе

2. Если же ты хочешь непременно конвертировать, то это будет так:

-384 - это
11111111111111111111111010000000

а вовсе не то число, которое у тебя

Итак:
11111111111111111111111010000000
+
00000000000000000000000111100011
---------------------------------------------------
00000000000000000000000001100011

опять же оно самое... 99 

 smile

У меня не получается перевести из 10 в 2 систему число с минусом!!!
Например: -548
Помогите!!!! Очень нужно!! smile  smile 

Автор: Ivan Kolesnikov 8.12.2006, 12:25
Насколько помню приведенная выше запись отрицательных чисел называется дополнительным кодом. Как переводить в это дополнительный код.
Например у нас имеется число -548 Вначале найдем двоичной представление его модуля 548 = 1000100100. Возьмем его отрицание, получим что-то типа 1111110111011011.  Все зависит от числа разрядов (в данном случае их 16). Теперь к этому числу прибавляем 1, получим 1111110111011100.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)