Составил код в Visual Studio, в итоге получилось 27
Var n, s, a, p, v:integer;
begin
write('N = '); readln(n);
s:=n div (3*4*4);
a:=(n mod (3*4*4)) div (4*4);
p:=(n mod (4*4)) div 4;
v:=n mod 4;
writeln('s = ',s,' a = ',a,' p = ',p,' v = ',v);
end.
Пример:
N = 2061
s = 42 a = 2 p = 3 v = 1
1 + 1 + 1 + 1 = 4
Если я не косоглазый. Условие лучше в следующий раз записывать в логическом порядке
Вес разрядов справа от точки равен основанию системы в степени -1, -2, -3 ... итд (то есть 2^(-n), где n- номер разряда считая от первого справа от запятой).
Напишу веса разрядов начиная от первого справа от запятой, и далее, по порядку:
Двоичная система: 2^(-1)=1/2, 2^(-2)=1/4, 2^(-3)=1/8, 2^(-4)=1/16 ... итд
Восьмеричная: 8^(-1)=1/8, 8^(-2)=1/64, 8^(-3)=1/512 ... итд
Шестнадцатеричная: 16^(-1)=1/16, 16^(-2)=1/256, 16^(-3)=1/4096 ... итд
Вес разрядов слева от точки равен основанию системы в степени 0, 1, 2, 3 ... итд (то есть 2^(n-1), где n- номер разряда считая от первого слева от запятой).
Напишу веса разрядов начиная от первого слева от запятой, и далее, по порядку:
Двоичная система: 2^0=1, 2^1=2, 2^2=4, 2^3=8 ... итд
Восьмеричная: 8^0=1, 8^1=8, 8^2=64 ... итд
Шестнадцатеричная: 16^0=1, 16^1=16, 16^2=256 ... итд
Разделим двоичные числа по 4 битам, начиная с конца:
0001 0001 1100
Заменим каждые 4 бита на соответствующее число в системе счисления с основанием 16.
0001 = 1 * 2^0 = 1
0001 = 1 * 2^0 = 1
1100 = 1 * 2^3 + 1 * 2^2 = 8 + 4 = 12 = С
100011100 = 11C
Аналогично для 11111:
0001 1111
0001 = 1 * 2^0 = 1
1111 = 1 * (2^3 + 2^2 + 2^1 + 2^0) = 15 = F
11111 = 1F
Ответ: 11С, 1F.