Перевод целого числа из десятичной системы счисления в систему с другим основанием делается путем последовательного целочисленного деления числа на основание системы с запоминанием остатков. Практика показывает, что если надо сделать перевод десятичного числа в системы по основанию 16, 8 и 2, то наименьшие трудозатраты получаются, когда перевод начинают с шестнадцатиричной системы, поскольку количество делений получается минимальным. 600 / 16 = 37 и остаток 8. 37 / 16 = 2 и остаток 5 Выписываем числа в обратном порядке, получаем 258. Итак, 600 (10) = 258 (16). Для перехода к двоичной системе каждую цифру шестнадцатиричного числа записываем в виде 4х разрядного двоичного числа (тетрады): 258 (16) = 0010 0101 1000 (2) или просто 1001011000 (незначащие нули опускаем). Для перехода к восьмеричной системе разбиваем справа налево двоичный код на триады (т.е. по три двоичных разряда) и каждую триаду заменяем восьмеричной цифрой. 1001011000 (2) = 1 001 011 000 (2) = 1130 (8)
600 / 16 = 37 и остаток 8.
37 / 16 = 2 и остаток 5
Выписываем числа в обратном порядке, получаем 258.
Итак, 600 (10) = 258 (16).
Для перехода к двоичной системе каждую цифру шестнадцатиричного числа записываем в виде 4х разрядного двоичного числа (тетрады):
258 (16) = 0010 0101 1000 (2) или просто 1001011000 (незначащие нули опускаем).
Для перехода к восьмеричной системе разбиваем справа налево двоичный код на триады (т.е. по три двоичных разряда) и каждую триаду заменяем восьмеричной цифрой.
1001011000 (2) = 1 001 011 000 (2) = 1130 (8)
Привет всему 12 "А" классу(Реальному).Я знаю, зачем вы тут, и я вам Вы знаете меня, как Anxel09.
var a,b,sum,i : integer;
begin
readln(a,b);
if (a < 0) or (a > 10) then
while (a < 0) or (a > 10) do begin
writeln('Число ''a'' не подходит: ');
readln(a);
end;
if (b < 0) or ( b > 10) then
while (a < 0) or (a > 10) do begin
writeln('Число ''b'' не подходит: ');
readln(b);
end;
sum := 1;
for i:= 1 to b do
sum:= sum * a;
writeln('Число ''а'' в степени ''b''',' = ', sum );
end.
Вот и все!
Объяснение: