Другие языки программирования и технологии

перевод пробного числа из 10-ой системы счисления в другие

переведите число 10,96 в двоичную(2), восьмеричную(8), шестнадцатеричную(16). Точность перевода дробной части 0,0001 Убедительная просьба сделать это подробно, чтобы было понятно как всё делалось
эхэхэхэ. А в инете почитать не судьба? Все любят тарелочки с голубой каемочкой. а лишний раз головой подумать не хотят. вам же в пользу будет! и опыт!
могли бы для приличия свои наработки показать.
Даулетжан Калкаев
Даулетжан Калкаев
74 324
Лучший ответ
Последовательно делишь десятичное число на основание той системы, в которую собираешься переводить (2,8,16).Остаток записываешь справа, а целую часть делишь снова на основание той системы.... Пока целая часть не будет меньше основания системы. Затем в конце все эти остатки записываем в обратном порядке и получаем необходимое число. Например:
10|0(10 делить на 2 будет 5 с остатком 0)
5|1(5 делить на 2 будет 2 состатком 1)
2|0(2 делить на 2 - будет 1 с остатком 0)
1|1(1 не делится на 2 и мы выходим из цикла и записываем 1)
Перворачиваем и у нас вышло 1010
Только дробную часть надо отдельно переводить следующим способом:
последовательно умножаем дробную часть на основание той, системы в которую мы собираеся переводить (2,8,16) и после каждого умножения записываем справа только целую часть (даже если она равна нулю) , и эту же целую часть отбрасываем и снова умножаем на основание системы, всё это делать до тех пор пока мы не получим бесконечный период или, как в вашем случае, пока мы не достигнем требуемой точности. Затем целые части записываем в прямом порядке и выходит искомая дробная часть. Например
0.96|1(0.96 умножаем на 2 выходит 1.92, целую часть (1) записываем справа, а дробную чуть ниже)
0.92|1(0,92 умножаем на 2 выходит 1,84, целую часть (1) записываем опять справа, а дробную переводим вниз и так далее)
0.84|1
0.68|1(выходим из цикла, т. к. мы достигли требуемой точности - 4 знака после запятой)
Записываем целые части в прямом порядке и выходит: 1111
Итого 10.96 в двоичной будет 1010.1111

Проще всего перевести число в двоичную систему, а затем можно при помощи триад и тетрад за пару минут первести любое число в 8-чную и 16-чную систему