90(10) = 5A(16) = 0101 1010(2) в восьмибитном представлении
-55(10) = -37(16) = -0011 0111(2) в прямом коде. Для хранения отрицательных чисел используется модифицированный обратный код.
Обратный код получается инверсией всех битов.
-0011 0111(2) = 1100 1000(2) в восьмибитном представлении (обратный код)
Модифицированный код получается из обратного путем прибавления единицы в младшем (левом) разряде числа.
1100 1000(2) = 1100 1001(2) в восьмибитном представлении (модифицированный обратный код)
1100 1001(2) = С9(16) = 0хС9
===== PascalABC.NET =====
begin
var n := ReadInteger('n =');
var m := Range(1, n).Average;
if m > 17 then
Print(m - 5)
else
Range(1, n).Aggregate(BigInteger.One, (p, q) -> p * q).Print
end.
101110=1*2^5 + 1*2^3 + 1*2^2 + 1*2= 32+8+4+2=46
621=6*8^2 + 2*8 + 1= 384+16+1=401
64C= 6*16^2 + 4*16 +12=1536+64+12=1612