что бы из двоичной системы перевести сразу в восьмиричную, необходимо разбить число на тройки и в каждой тройке посчитать полученное число(как в десятичной системе):
110 110 , 01 = 66,25
чтобы перевести сразу в шестнидцатеричную, необходимо проделать тоже самое, только разбить на 4:
0011 0110 , 01 = 36,25
2. Что бы перевести число из десятичной СС в любую другую, надо данное число разделить на основение требуемой системы нацело. Если остается остаток, то его записать. и продолжать так делить до тех пор, пока часное не перестанет делитсчя нацело. после чего записываем последнее часное и все остатки в обратном направлении.
1. чтобы перевести тз любой позиционной СС в десятичную:
1) запишите число
2) сверху, над каждой цифрой напишите число от 0 и до скольки получится, считая справа налево от запятой
3) так же степени раставьте после запятой, только числа используйте отрицательные(-1, -2...) и пишите их слева направо
4) запишите число в развернутом виде с учетом записанных степеней: пишем цифру и умножаем на основание СС в степени,записанной над данной цифрой
5) считаем
5 4 3 2 1 0 -1-2
1 1 0 1 1 0 , 0 1 = 1*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 0*2^-1 + 1*2^-2 = 32+16+0+4+2+0+0+0.25 = 54.25
что бы из двоичной системы перевести сразу в восьмиричную, необходимо разбить число на тройки и в каждой тройке посчитать полученное число(как в десятичной системе):
110 110 , 01 = 66,25
чтобы перевести сразу в шестнидцатеричную, необходимо проделать тоже самое, только разбить на 4:
0011 0110 , 01 = 36,25
2. Что бы перевести число из десятичной СС в любую другую, надо данное число разделить на основение требуемой системы нацело. Если остается остаток, то его записать. и продолжать так делить до тех пор, пока часное не перестанет делитсчя нацело. после чего записываем последнее часное и все остатки в обратном направлении.
139| 2
138 69| 2
1 68 34| 2
1 34 17| 2
0 16 8| 2
0 8 4| 2
0 4 2| 2
0 2 1
0
139 = 10000011
money: array[1..7]of integer;
count: array[1..7]of integer;
s, i: integer;
begin
money[1] := 1;
money[2] := 2;
money[3] := 5;
money[4] := 10;
money[5] := 50;
money[6] := 100;
money[7] := 500;
write('s = ');
readln(s);
i := 7;
repeat
if s >= money[i] then begin
s := s - money[i];
count[i] := count[i] + 1;
end
else i := i - 1;
until s <= 0;
for i := 7 downto 1 do
if count[i] > 0 then
writeln(money[i], ' p. = ', count[i], ' шт.')
end.