如何进行2进制与10进制的转换 100大样(100分)

D

dsq1980

Unregistered / Unconfirmed
GUEST, unregistred user!
如何进行2进制与10进制的转换
 
我记的DELPHI有函数
 
DELPHI没有,我记错了,这是别人写的
function octtobin(i:integer):string;
var
j:integer;
s:string;
begin
j:=i;
while j>2 do
begin
if (j mod 2)=1 then
s:='1'+s;
j:=j div 2;
end;
s:=inttostr(j) + s;
result:=s;
end;
function bintooct(k:string):integer;
var
i,j:integer;
s:string;
begin
for i:=0 to length(k)-1 do
begin
s:=copy(k,length(k)-i-1,1);
j:=j + (strtoint(s)*2^i);
end;
result:=j;
end;
 
j:=j + (strtoint(s)*2^i);
报错,Point type required.
 
别人写的
function DecToBinStr(n: integer): string;
var
S: string;
i: integer;
Negative: boolean;
begin
if n < 0 then
Negative := true
else
Negative := False;

n := Abs(n);
for i := 1 to SizeOf(n) * 8 do
begin
if n < 0 then
S := S + '1'
else
S := S + '0';

n := n shl 1;
end;
Delete(S,1,Pos('1',S) - 1);//remove leading zeros
if Negative then
S := '-' + S;
Result := S;
end;
//-----------------------
program kk(input,output);
var i:integer;
t:string;

function octtobin(i:integer):string;
var j:integer
s:string;
begin
j:=i;s:=' ';
while j>=2 do
begin
if (j mod 2)=1 then
begin s:='1'+s
j:=j div 2
end
else begin s:='0'+s;j:=j div 2
end;
end;
s:=chr(ord('0')+j) + s;
octtobin:=s;
end;

function bintooct(k:string):integer;
var
i,j,t:integer
s:char;
begin
t:=1
j:=length(k);j:=0+(ord(k[j])-ord('0'))*t;;
for i:=length(k)-1 downto 1 do
begin
s:=k;t:=t*2;
j:=j + ((ord(s)-ord('0'))*t);
end

bintooct:=j;
end;

begin
writeln('请输入一个十进制整数:');
readln(i);
writeln('其十进制为:',i:10);
writeln('其二进制为:',octtobin(i));
writeln('请输入一个二进制字符串:');
readln(t);
writeln('其二进制为:',t);
writeln('其十进制为:',bintooct(t):10);
end.
 
function octtobin(i:integer):string;
var j:integer
s:string;
begin
j:=i;s:=' ';
while j>=2 do
begin
if (j mod 2)=1 then
begin
s:='1'+s;
j:=j div 2

end
else
begin
s:='0'+s;
j:=j div 2

end;
end;
s:=chr(ord('0')+j) + s;
octtobin:=s;
end;

function bintooct(k:string):integer;
var
i,j,t:integer
s:char;
begin
t:=1

j:=length(k);
j:=0+(ord(k[j])-ord('0'))*t;
for i:=length(k)-1 downto 1 do
begin
s:=k;t:=t*2;
j:=j + ((ord(s)-ord('0'))*t);
end

bintooct:=j;
end;

 
多人接受答案了。
 
顶部