用inttostr转换即可,因为word类型为16位无符号整数,如果你想直接得到二进制表达式,参考如下:
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[i];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.
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[i];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.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货