捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
超短精简进制转换 (二进制/十进制/十六进制)
关键字:StrToInt Mod 二进制 十进制 十六进制 转换
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2006/3/20
发布者:@230255 发布时间:2006/3/20
编辑器:DELPHI7 语  种:简体中文
分 类:科学 下载浏览:0/17600
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
无图片
进制转换,有谁能有这么详细吗?不是我吹!精简/短小精悍.
网站:网络实验室 Http://www.ontheline.cn
收集与制作: Jey

//十六进制(S)-->>十进制(I)  [重写:Jey]
function hextoint(s: string): Integer;
begin          //$代表16进制
  Result:=StrToInt('$'+s);
end;

//十进制转换为二进制字符串  [重写:Jey]
function inttoBin(i: integer): string;
begin
 while i <>0 do
 begin          //i mod 2取模,再使用format格式化
   result:=Format('%d'+result,[i mod 2]);
   i:=i div 2
 end
end;

//二进制(S)-->>十进制(D)    [重写:Jey]
uses Math; 
function hextoint(s: string): Double;
begin
  while Length(s) <>0 do
  begin          //2^(长度-1)次方
    if s[1]='1' then  Result:=Result+power(2,Length(s)-1);
    s:=Copy(s,2,Length(s));
  end
end;

//十进制(I)-->>十六进制(S)
//D自带函数,Digits长度,一般设4.
function IntToHex(Value: Integer; Digits: Integer): string;

//数据(S)-->>二进制(S) 
//任何数据都是以二进制形式存储的! (转) 
function conertde(s:string):string; 
var 
 i:integer; 
begin 
 for i:=1 to length(s) do 
   result:=result+inttohex(ord(s[i]),2); 
end;
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论8条 当前显示最后6条评论
iamdream 2006/3/23 14:05:29
最后一个,对大字符串,还是得用这个:
function ToHexStr(const S: string): string;
const
  csHexChar: array[0..15] of Char = '0123456789ABCDEF';
var
  i: Integer;
begin
  SetLength(Result, Length(S) shl 1);
  for i := Length(S) downto 1 do begin
    Result[i * 2]    := csHexChar[Byte(Result[i]) and $F];
    Result[i * 2 -1] := csHexChar[(Byte(Result[i]) and $F0) shr 4];
  end;
end;
iamdream 2006/3/23 14:15:33
呀,刚才写错了:
function ToHexStr(const S: string): string;
const
  csHexChar: array[0..15] of Char = '0123456789ABCDEF';
var
  i: Integer;
begin
  SetLength(Result, Length(S) shl 1);
  for i := Length(S) downto 1 do begin
    Result[i * 2]    := csHexChar[Byte(S[i]) and $F];
    Result[i * 2 -1] := csHexChar[(Byte(S[i]) and $F0) shr 4];
  end;
end;
beyondbit 2006/3/23 20:03:32
怎么把一个字符串一个一个的取出来转换成8位的二进制数据呢?
luckygame 2006/3/24 11:17:18
有很多错误,建议修改后再使用。
dna32r 2006/4/3 21:25:12
我以为我已经很菜了~没有想到还有比我还菜的~菜就菜呗..吹牛就是你的不对了~~~

完全用API完成:..uses Windows;
function IntToStr(I: integer): string;
begin
  Str(I, Result);
end;

function StrToInt(S: string): integer;
begin
 Val(S, Result, Result);
end;

function HexToInt(Const HexValue: String) : Integer;
begin
  Val('$'+HexValue, Result, Result);
end;

function IntToHex(Const Value: Integer): string;
const
  HexChars: array[0..15] of Char = '0123456789ABCDEF';
var
  iTemp: Integer;
  i: Integer;
begin
  Result := '';
  i := 0;
  while i<4 do
  begin
    case i of
      0: iTemp := Value shr 24 and $FF;
      1: iTemp := Value shr 16 and $FF;
      2: iTemp := Value shr 8 and $FF;
      3: iTemp := Value and $FF;
    end;
    Result := Result + HexChars[iTemp div 16];
    Result := Result + HexChars[iTemp mod 16];
    Inc(i);
  end;
end;

function LowerCase(const S: string): String;
begin
  Result:=CharLower(Pchar(S));
end;

function UpperCase(const S: string): String;
begin
  Result:=CharUpper(Pchar(S));
end;

多学习少吹牛..这个是我平时没事的时候~自己写的..
riverqh 2006/4/8 20:48:34
dna32r 的写得不错,呵呵,Str、Val似乎是Delphi的RTL实现吧?也可能是我记错了。

楼主的有的也是不错,不过在简单的转换用Format似乎有些小题大做了,何况这些转换在应用很频繁的地方,是否应该考虑一下性能?
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表