Объяснение:
program ideone;
var
n, i: Integer;
begin
read(n, i);
writeln(n or (1 shl i));
end.
n, c: longint;
i: integer;
read(n);
if (n < 0 ) or (n > 2147483647) then
writeln('n должно быть от 0 до 2147483647')
else
read(i);
if (i < 0) or (i > 31) then
writeln('i должно быть от 0 до 31')
c := 1;
c := (c shl i) or n;
Write(c)
end;
Если вводить 0 в качестве n, то результат будет равен 2 в степени i. i=31 меняет знак и значение числа n, если оно вначале было положительным.
Объяснение:
program ideone;
var
n, i: Integer;
begin
read(n, i);
writeln(n or (1 shl i));
end.
var
n, c: longint;
i: integer;
begin
read(n);
if (n < 0 ) or (n > 2147483647) then
writeln('n должно быть от 0 до 2147483647')
else
begin
read(i);
if (i < 0) or (i > 31) then
writeln('i должно быть от 0 до 31')
else
begin
c := 1;
c := (c shl i) or n;
Write(c)
end;
end;
end.
Объяснение:
Если вводить 0 в качестве n, то результат будет равен 2 в степени i. i=31 меняет знак и значение числа n, если оно вначале было положительным.