| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Перевод числа из 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 |
| Автор: cardinal 27.10.2004, 22:06 |
| SIMarOK, не плоди одну и ту же тему по всему форуму! Какие "алгоритмы" нафиг, когда ты еще основы не усвоил? |
| Автор: SIMarOK 27.10.2004, 22:28 | ||
Просто не знал куда написать, сорри Спасибо за помощь |
| Автор: SIMarOK 27.10.2004, 23:31 | ||
А почему первые 10000000 не конвертировались, а только после? |
| Автор: turilin 6.12.2006, 17:01 | ||
У меня не получается перевести из 10 в 2 систему число с минусом!!! Например: -548 Помогите!!!! Очень нужно!! |
| Автор: Ivan Kolesnikov 8.12.2006, 12:25 |
| Насколько помню приведенная выше запись отрицательных чисел называется дополнительным кодом. Как переводить в это дополнительный код. Например у нас имеется число -548 Вначале найдем двоичной представление его модуля 548 = 1000100100. Возьмем его отрицание, получим что-то типа 1111110111011011. Все зависит от числа разрядов (в данном случае их 16). Теперь к этому числу прибавляем 1, получим 1111110111011100. |