十进制到二进制自由Pascal
我需要一个从十进制数到二进制数的代码,但我的程序显示它们是倒转的,例如:需要显示1011000,但它显示0001101。 +我不能在这个程序中使用体量和数组十进制到二进制自由Pascal,pascal,Pascal,我需要一个从十进制数到二进制数的代码,但我的程序显示它们是倒转的,例如:需要显示1011000,但它显示0001101。 +我不能在这个程序中使用体量和数组 var x,y,i:longint; BEGIN readln(y); repeat x:= y mod 2; y:= y div 2; write(x); until y = 0; END. 我认为你可以使用递归函数。例如: procedure dec2
var
x,y,i:longint;
BEGIN
readln(y);
repeat
x:= y mod 2;
y:= y div 2;
write(x);
until y = 0;
END.
我认为你可以使用递归函数。例如:
procedure dec2bin(y)
BEGIN
x := y mod 2;
y := y mod 2;
if y > 1 then
dec2bin(y)
end
write(x)
END
BEGIN
readln(y);
dec2bin(y)
END.
我不确定语法是否正确,因为我很久以前就在使用Pascal了。但我想你能理解我的想法,并做出这样的决定。这应该能满足你的需求
function decimalToBinary(a:LongInt):String;
var d:Integer;
str:String;
Begin
str:='';
while a>0 do begin
d:=a mod 2;
str:=concat(IntToStr(d),str);
a:=a div 2;
end;
decimalToBinary:=str;
End;
也不能使用字符串!这就排除了一个简单的解决方案:可以使用Pascal位运算吗?什么是“大规模”?