Что бы перевести число из 10-чной СС в СС с другим основанием (в данной задаче с основанием 8 и 16) надо это число последовательно делить на основание новой СС, записывая остатки от деления в обратном порядке. Это и будет искомое число. При этом учитываем, что двузначные остатки обозначаются буквами английского алфавита, например 10 это A, 11 - B, 12 - C и т.д.
Таким образом получаем:
79 : 2 = 39 (остаток 1)
39 : 2 = 19 ( 1 )
19 : 2 = 9 ( 1 )
9 : 2 = 4 ( 1 )
4 : 2 = 2 ( 0 )
2 : 2 = 1 ( 0 )
1 : 2 = 0 ( 1 )
Собираем остатки в обратном порядке, получаем число 100111,
т.е. 79 (в 10 СС) = 100111 (в 2 СС)
79 : 16 = 4 ( ост. 15 ) ..... 15 соответствует букве F
4 : 16 = 0 ( 4 )
<span>т.е. 79 (в 10 СС) = 4F (в 16 СС)
</span>
Аналогично получаем:
<span>79 (в 10 СС) = 117 (в 8 СС)
169 </span><span>(в 10 СС) = 10100100 (в 2 СС)
</span>169 <span>(в 10 СС) = 244 (в 8 СС)
</span>169 <span>(в 10 СС) = A4 (в 16 СС)</span>
<h3>PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var (m, n) := (Random(4, 10), Random(4, 10));
Writeln('*** Исходный массив ***');
var a := MatrRandomReal(m, n, -99, 99);
a.Println(8, 3);
Writeln('*** Полученный массив ***');
a.SwapCols(1, a.ColCount - 1);
a.Println(8, 3)
end.
Var
a,b: real;
begin
write('Введите a:');readln(a);
write('Введите b:');readln(b);
if a>b then writeln(a,' - максимальное')
else if b>a then writeln(b,' - максимальное')
else
writeln('Значения равны');
end.
1)
1010₈ = 1 000 001 000₂ - 10 цифр
101₁₆ = 1 0000 0001₂ - 9 цифр
Ответ: 100010 100000001 1000001000
2а)
203891₁₆ = 10 0000 0011 1000 1001 0001₂ =
1 000 000 011 100 010 010 001₂ = 10034221₈
2б)
2746735255₈ = 10 111 100 110 111 011 101 010 101 101₂ =
10111100110111011101010101101₂
А 0011
В 0101
Не А 1100
Не В 1010
Не А \/ не В 1110
Не(не А \/ не В) 0001
А/\В 0001