function f(x:integer):string := x>0 ? f(x div 2) + x mod 2 : ''; function ToBinaryCode(Self:integer; n:byte:=8):string; extensionmethod; begin Result := if Self = 0 then '0' else f((Self or Trunc(2**n)) and Trunc(2**n-1)).PadLeft(n, Self>0 ? '0':'1')end; begin ReadInteger.ToBinaryCode.Print; end.
Перевод целых чисел в двоичную систему счисления:
function f(x:integer):string := x>0 ? f(x div 2) + x mod 2 : '';function Bin(x:integer):string := x=0 ? '0' : x>0 ? f(x) : '-' + f(Abs(x));begin Print('x₂:', Bin(ReadInteger('x₁₀:')))end.
program des_v_dvoich;
uses crt;
var
x,i: integer;
s:String;
begin
write('Введите десятичное число>>');
read(x);
write('Двоичное число>>');
if x<0 then begin
write('-');
x:=abs(x);
end;
if x=0 then
write ('0')
else
begin
while x<>0 do begin
if x mod 2 =1 then
s:=s+'1'
else
s:=s+'0';
x:=x div 2
end;
for i:=length(s) downto 1 do
write(s[i])
end;
end.
Объяснение:
Скрины выполнения прикреплены
Перевод целых чисел в двоичный код:
function f(x:integer):string := x>0 ? f(x div 2) + x mod 2 : ''; function ToBinaryCode(Self:integer; n:byte:=8):string; extensionmethod; begin Result := if Self = 0 then '0' else f((Self or Trunc(2**n)) and Trunc(2**n-1)).PadLeft(n, Self>0 ? '0':'1')end; begin ReadInteger.ToBinaryCode.Print; end.Перевод целых чисел в двоичную систему счисления:
function f(x:integer):string := x>0 ? f(x div 2) + x mod 2 : '';function Bin(x:integer):string := x=0 ? '0' : x>0 ? f(x) : '-' + f(Abs(x));begin Print('x₂:', Bin(ReadInteger('x₁₀:')))end.Пример работы: