Советую перевести сначала каждое число в 16-тиричную (hex) систему, т.к. проще будет выровнять, потому что каждое будет по 8 бит. Это можно сделать на калькуляторе. Т.е.:
25 = 19h
128 = 80h
12 = 0Сh
44 = 2Ch
Теперь тупо располагаем их друг за другом:
19800С2С h
В десятичной это 427822124,
в двоичной - 11001100000000000110000101100
Считаем, что в нашей реализации языка Pascal нет готовой функции для арксинуса и опишем арксинус на основе известного тригонометрического соотношения:
Тогда
Область допустимых значений: |c|<1, a≠0
function arcsin(x: real): real;
begin
arcsin := arctan(x / sqrt(1 - sqr(x)))
end;
var
a, b, c, x: real;
begin
Write('Введите через пробел значения a,b,c: ');
Readln(a, b, c);
if (c >= 1) then Writeln('Решения нет, c>=1')
else if a = 0 then Writeln('Решения нет, a=0)')
else Writeln('x=', arcsin(c) / sqrt(1 - sqr(x)):0:5)
end.
Тестовое решение:
Введите через пробел значения a,b,c: 3.25 -1.7 0.146
x=0.14652
54 в 7ричной =1*4+5*7=39 в десятичной
320 в 5ричной=25*3+10=85 в десятичной
39+х=85
х=46
46 в десятичной =2Е
ответ: 2Е
Тут же все просто х=0 потом .......
Числа, которые при делении на 500 дают в остатке 9 это 509, 1009, 1509, 2009 и т.д. Максимальное число, которое можно записать девятью битами - 256+128+64+32+16+8+4+2+1=511. Поэтому число 509 наиболее подходящее для решения нашей задачи.
Ответ: 509(10) и 111111101(2)