Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
ВОПРОС · Q&A
Перевод числа из десятичной системы в двоичную(си)
2 ответов
33,9 тыс.
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Для перевода чисел из десятичной системы счисления в двоичную используют так называемый "алгоритм замещения", состоящий из следующей последовательности действий:
1.Делим десятичное число А на 2. Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит двоичного числа.
2.Если частное q не равно 0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или 1) записывается в разряды двоичного числа в направлении от младшего бита к старшему.
3.Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a = 1.
Лентяй
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Пример</div></div><div class="sp-body"><div class="sp-content">
Например, требуется перевести десятичное число 247 в двоичное. В соответствии с приведенным алгоритмом получим:
123[sub]10[/sub] : 2 = 61[sub]10[/sub] 123[sub]10[/sub] - 122[sub]10[/sub] = 1, остаток 1 записываем в следующий после МБ разряд двоичного числа.
61[sub]10[/sub] : 2 = 30[sub]10[/sub] 61[sub]10[/sub] - 60[sub]10[/sub] = 1, остаток 1 записываем в старший разряд двоичного числа.
30[sub]10[/sub] : 2 = 15[sub]10[/sub] 30[sub]10[/sub] - 30[sub]10[/sub] = 0, остаток 0 записываем в старший разряд двоичного числа.
15[sub]10[/sub] : 2 = 7[sub]10[/sub] 15[sub]10[/sub] - 14[sub]10[/sub] = 1, остаток 1 записываем в старший разряд двоичного числа.
7[sub]10[/sub] : 2 = 3[sub]10[/sub] 7[sub]10[/sub] - 6[sub]10[/sub] = 1, остаток 1 записываем в старший разряд двоичного числа.
3[sub]10[/sub] : 2 = 1[sub]10[/sub] 3[sub]10[/sub] - 2[sub]10 [/sub] = 1, остаток 1 записываем в старший разряд двоичного числа.
1[sub]10[/sub] : 2 = 0[sub]10[/sub], остаток 1 записываем в старший разряд двоичного числа.
Таким образом, искомое двоичное число равно 11110111[sub]2[/sub]
Варианты на разных языках:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Паскаль</div></div><div class="sp-body"><div class="sp-content"> Паскаль:
Код:
VAR
x:WORD;
i,p:INTEGER;
function Pow_2(n:WORD):WORD;
Var i,Y:WORD;
BEGIN
IF n=0 THEN Pow_2:=1 ELSE
IF n=1 THEN Pow_2:=2 ELSE
BEGIN
Y:=2;
FOR i:=2 TO n DO Y:=Y*2;
Pow_2:=Y;
END;
END;
BEGIN
Write('Enter the number '); ReadLn(x);
p:=-1;
REPEAT
INC(p);
UNTIL (x div Pow_2(p))<2;
FOR i:=p DOWNTO 0 DO
BEGIN
Write(x div Pow_2(i));
x:=x mod Pow_2(i);
END;
ReadLn;
END.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь. Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.