DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: rrdpadromilla
今日帖子: 1
在线用户: 23
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 qyhyf2000 (枫) ★☆☆☆☆ -
注册会员
2003/5/1 18:36:53
标题:
我自己写了一个把“十进制数”转为“二进制数”的函数,但是得不到正确结果,请大家帮忙看看哪里出错? 浏览:1553
加入我的收藏
楼主: function tform1.tentosecend(a:integer):string;//a:为要求的十进数
  var
  aa:string;
  i,j,t:integer;
  begin
while a<>0 do
  begin
    j:=a mod 2;
    a:=Round(a/2);
      aa:=aa+inttostr(j);
       end;
 for i:=length(aa) downto 1 do
  result:=result+aa[i];
----------------------------------------------
-
作者:
女 123 (猪猪) ★☆☆☆☆ -
盒子活跃会员
2003/5/2 11:43:30
1楼: function tentosecend(a:integer):string;//a:为要求的十进数
  var
  aa:string;
  i,j,t:integer;
  begin
while a<>0 do
  begin
    j:=a mod 2;
    a:=Round(a/2);
      aa:=aa+inttostr(j);
       end;
 for i:=length(aa) downto 1 do
  result:=result+aa[i];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption:=tentosecend(5);
end;

我帮你测试了没有问题。
----------------------------------------------
-
作者:
男 qyhyf2000 (枫) ★☆☆☆☆ -
注册会员
2003/5/2 20:05:13
2楼: 谢谢你的帮忙,但我也是用同一个函数,我是用tentosecend(3)得到的结果是101,还请各位再帮忙看看要如果改才正确
----------------------------------------------
-
作者:
女 123 (猪猪) ★☆☆☆☆ -
盒子活跃会员
2003/5/2 21:52:26
3楼: function CharToBin(c : Char): string;
var
  ii:integer;
begin
  ii:=strtoint(c);
    repeat
      if odd(ii) then
        Result:='1'+Result
      else
        Result:='0'+Result;

      ii:=ii div 2;
    until (ii=0) and (length(Result)=4);
end;

function IntToBin(i : string): string;
var Counter : integer;
begin
  Result:=';

  for Counter:=1 to length(i) do
    Result:=Result+CharToBin(i[Counter]);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption:=IntToBin('94');
end;

我运行要死机,不过我觉得好象没有错误.
----------------------------------------------
-
作者:
男 yangjingzun (yjz) ★☆☆☆☆ -
注册会员
2003/5/3 18:12:46
4楼: 其实很简单,错误的原因在于你用的函数错误导至:只在把a:=Round(a/2);这一句改为a:=trunc(a/2);即可。
若还有问题联系yangjingzun@163.com
----------------------------------------------
-
作者:
男 qyhyf2000 (枫) ★☆☆☆☆ -
注册会员
2003/5/4 12:59:19
5楼: 多谢各位的帮忙,现在问题已经解决了
----------------------------------------------
-
作者:
男 supermay (supermay) ★☆☆☆☆ -
盒子活跃会员
2003/5/5 11:11:05
6楼: delphi中有一个是IntToBin
----------------------------------------------
https://shop66090024.taobao.com/?spm=a313o.7775905.1998679131.d0011.6f6f2796Z7e3JX
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行39.0625毫秒 RSS