17:13

Лентой похоронною, вечною судьбой - горький крест иронии над самим собой.
Перевод из десятиричной системы счисления в нормальную

@темы: Колдун Канмаклауд, Гордиццо собой, Мысли вслух, Цитаты

Комментарии
05.06.2008 в 17:25

Did I have a dream? Or did the dream have me? ©
так-так-так! это пригодится! молодчина, благодарю)) :beer:
05.06.2008 в 17:29

Ням)
да, полезная штука)
05.06.2008 в 20:23

АААААА!!Мы это учили!!)
13.10.2008 в 16:40

Ааа пасиб! Ушёл переписывать в конспект!
11.02.2009 в 07:13

А разве не надо после конца операции перевернуть полученное число, например у числа 57 должно получиться 100111?
12.02.2009 в 00:10

Лентой похоронною, вечною судьбой - горький крест иронии над самим собой.
Нет конечно. возьмем для примера простое число восемь. В двоичном коде оно будет выглядеть как 1000 (8/2(0) +4/2(0)+2/2(0)+1/2(1)=1000) Число мы и так записываем справа на лево
24.06.2009 в 00:14

Спасибо автору, тока система перевода в двоичную систему чуток не такая как нас учили.
24.06.2009 в 18:17

Лентой похоронною, вечною судьбой - горький крест иронии над самим собой.
Да главное что работает )
13.09.2009 в 22:43

Супер!спасибо!
21.02.2010 в 17:35

А ещё другой способ, который на не очень больших (лучше всего до 5000) числах очень экономит время. Впрочем этот метод и на больших числах работает вполне хорошо. Только вот нужно знать степени двойки. И делить ничего не нужно, только отнимать.
Вот пример:
число 5603 в десятичной системе переведём в двоичную систему.
Находим самую большую степерь двойки, которая меньше нашего числа. 2 в 12-ой степени - 4096
ставим еденицу за эту степень и отнимаем 3096 от изначального числа 5603.
Предварительный результат: 1
Отнимаем 4096
5603 - 4096 = 1507
Дальше работаем с результатом, тоесть с остатком - числом 1507
Следующая степень двойки - 11-ая, тоесть 4096/2 = 2048
2048 в наш остаток не влезает, значит ставим за эту цифру 0
Предварительный результат: 10
следующая степень 10-ая = 1024. 1024 влезает, значит ставим за эту степень еденицу и отнимаем 1507 - 1024 = 483
Предварительный результат: 101
следующая степень = 512. Не влезает
Предварительный результат: 1010
256 влезает. 483 - 256 = 227
Предварительный результат: 10101
128 влезает. 227 - 128 = 99
Предварительный результат: 101011
64 влезает. 99 - 64 = 35
Предварительный результат: 1010111
32 влезает. 35 - 32 = 3
Предварительный результат: 10101111
16 не влезает.
Предварительный результат: 101011110
8 не влезает.
Предварительный результат: 1010111100
4 не влезает
Предварительный результат: 10101111000
2 влезает. 3 - 2 = 1
Предварительный результат: 101011110001
1 влезает. 1 - 1 = 0
101011110001
Предварительный результат:
21.02.2010 в 17:56

101011110001 это и есть 5603 в двоичной системе
Но 5603 это довольно долгий пример, хотя отнимать всё равно помоему удобнее деления, тем более с остатком
А если число попроще, скажем 4152, всё идет кужа легче
4152 - 4096 = 56
Предварительный результат: 1000000
32 первая степень двойки, которая влезает в остаток
Остальные степени - 2048, 1024, 512, 256, 128 и 64 не влезали в остаток, поэтому вместо них ставим 6 нулей, по одному за каждую
ставим единицу за 32
Предварительный результат: 10000001
56 - 32 = 24
16 тоже подходит
Предварительный результат: 100000011
24 - 16 = 8
8 тоже подходит
Предварительный результат: 1000000111
8 - 8 = 0
4, 2 и 1 - тоесть вторая, первая и нулевая степень двойки не влезают в наш остаток 0, поэтому за каждую из них ставим три нуля
Результат: 1000000111000
Идеально, если число всего чуть чуть больше степени двойки. например 1027
отнимаем 1024, тоесть 10-ую степень. Остаётся 3
Ставим единчку за десятую, нули за девятую, восьмую, шестую, пятую, четвёртую, третью и вторую степени. Два в первой даст нам 2 а два в нулевой даст нам 1. Тоесть в сумме 3. Поэтому добавляем последние две единички
10000000011

Расширенная форма

Редактировать

Подписаться на новые комментарии