再提一个数制转换问题;(50分)

  • 主题发起人 主题发起人 阿虫
  • 开始时间 开始时间

阿虫

Unregistered / Unconfirmed
GUEST, unregistred user!
这段程序有什么问题,为什么输入的值最终没有转换成2进制的。
function IntToBin(Value: LongInt;Size: Integer): String;
var
i: Integer;
begin
Result:='';
for i:=Size-1do
wnto 0do
begin
if Value and (1 shl i)<>0 then
Result:=Result+'1'
else
Result:=Result+'0';
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
hex1:string;
begin
hex1:=edit1.text;
caption:=IntToBin(strtoint('$'+edit1.text),8);
edit5.text:=caption;
end;
如果我在EDIT1中输入1111,转成2进制应是:1000100010001,可EDIT5中却是:0001000100010001,为什么。不是已经加'$'了吗,难道还是ASC码吗。如何改正啊。
 
没错啊,不过要得到 0001000100010001 的结果应该是 IntToBin(strtoint('$'+edit1.text),16) 吧
得到 1000100010001 的结果就是 IntToBin(strtoint('$'+edit1.text),13)
或者说你把前导 0 去掉
 
谢谢啦。对的。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
687
import
I
后退
顶部