<span>№1:</span>
<em><span>Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.</span></em>
<span>101 = 2<span>^{2}</span></span><span>*1 + 2<span>^{1}</span></span><span>*0 + 2<span>^{0}</span></span><span>*1 = 4 + 0 + 1 = 5</span>
<em>Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда</em>
101 = 2<span>^{-1}</span>*1 + 2<span>^{-2}</span>*0 + 2<span>^{-3}</span>*1 = 0.625
Аналогично:
№2
101 = 2<span>^{2}</span>*1 + 2<span>^{1}</span>*0 + 2<span>^{0}</span>*1 = 4 + 0 + 1 = 5
101000 = 2<span>^{-1}</span>*1 + 2<span>^{-2}</span>*0 + 2<span>^{-3}</span>*1 + 2<span>^{-4}</span>*0 + 2<span>^{-5}</span>*0 + 2<span>^{-6}</span>*0 = 0.625
№3
<span>11001 = 2<span>^{4}</span></span><span>*1 + 2<span>^{3}</span></span><span>*1 + 2<span>^{2}</span></span><span>*0 + 2<span>^{1}</span></span><span>*0 + 2<span>^{0}</span></span><span>*1 = 16 + 8 + 0 + 0 + 1 = 25</span>
101000 = 2<span>^{-1}</span>*1 + 2<span>^{-2}</span>*0 + 2<span>^{-3}</span>*1 + 2<span>^{-4}</span>*0 + 2<span>^{-5}</span>*0 + 2<span>^{-6}</span>*0 = 0.625
№4
<span>10100 = 2<span>^{4}</span></span><span>*1 + 2<span>^{3}</span></span><span>*0 + 2<span>^{2}</span></span><span>*1 + 2<span>^{1}</span></span><span>*0 + 2<span>^{0}</span></span><span>*0 = 16 + 0 + 4 + 0 + 0 = 20</span>
101 = 2<span>^{-1}</span>*1 + 2<span>^{-2}*</span>0 + 2<span>^{-3}</span>*1 = 0.625
<em> Если не понятен значок</em><em> ^{ } - это степень.</em>
Вложение к следующему заданию
11001-1001=10000
10001-101=9900
<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function Res(a:integer;op:char;b:integer):integer;
begin
case op of
'+':Result:=a+b;
'-':Result:=a-b;
'*':Result:=a*b;
'/':Result:=a div b
end
end;
begin
var s:=ReadlnString('Вводите:');
var p:=s.Matches('(((\-)?\d+)|[\+\-\*\/])').ToArray;
if p.Count<>5 then Writeln('Ошибка!')
else begin
var op1:=p[1].Value[1];
var op2:=p[3].Value[1];
var a:=p[0].Value.ToInteger;
var b:=p[2].Value.ToInteger;
var c:=p[4].Value.ToInteger;
if (op1 in ['+','-']) and (op2 in ['*','/']) then
Writeln('='+Res(Res(b,op2,c),op1,a))
else Writeln('='+Res(Res(a,op1,b),op2,c))
end
end.
<u>Примеры</u>
Вводите: -4--3--2
=1
Вводите: 12*3+45
=81
Вводите: 45+12*3
=81
Вводите: -26/13--5
=3
60*45*1200=3240000 символов, один символ равен 1 байт, 1байт=8битам, 3240000*8=25920000, 1 мб=8000000бит, следовательно 25920000/8000000=3,24мб, 700/3,24= приблизительно 216. правда можно было и без перевода в биты, но мало ли))