Delphi--2~36进制的转换
来源:互联网 发布:帝国cms建站系统 编辑:程序博客网 时间:2024/06/06 01:57
这是2到36的任意进制转换的程序代码:const MinBase = 2; MaxBase = 36; function NumToStr (num, len, base: Integer; neg: Boolean; fill: char): string; // num = 要转换的数 // len = 生成字符串的最小长度// base = 进制数 2 = 二进制// neg = 是否允许负数// fill = 填充字符用于补满字符串长度// // 用法: // NumToStr (45, 8, 2, false, '0') > '00101101' // NumToStr (45, 4, 8, false, '0') > '0055' // NumToStr (45, 4, 10, false, ' ') > ' 45' // NumToStr (45, 4, 16, false, '0') > '002D' // NumToStr (45, 0, 36, false, ' ') > '19' var s: string; digit: Integer; begin num:= ABS (num); if ((base >= MinBase) and (base <= MaxBase)) then begin s:= ''; repeat digit:= num mod base; if digit < 10 then Insert (CHR (digit + 48), s, 1) else Insert (CHR (digit + 55), s, 1); num:= num div base; until num = 0; if neg then Insert ('-', s, 1); while Length(s) < len do Insert (fill, s, 1); end; Result:= s; end; 从字符串转换回数: function StrToNum (const s: string; base: Integer; neg: Boolean; max: Integer): Integer; // s = 要转换的字符串// base = 进制数// neg = 是否为负数// max = 要转换的最大数 // 用法: // i:= StrToNum ('00101101', 2, false, MaxInt); // i:= StrToNum ('002D', 16, false, MaxInt); // i:= StrToNum ('-45', 10, true, MaxInt); // i:= StrToNum ('ZZ', 36, true, MaxInt); var negate, done: Boolean; i, ind, len, digit, mmb: Integer; c: Char; mdb, res: Integer; begin res:= 0; i:= 1; digit:= 0; if (base >= MinBase) and (base <= MaxBase) then begin mmb:= max mod base; mdb:= max div base; len:= Length (s); negate:= False; while (i <= len) and (s[i] = ' ') do Inc (i); if neg then begin case s[i] of '+': Inc (i); '-': begin Inc (i); negate:= TRUE; end; end; end; done:= len > i; while (i <= len) and done do begin c:= Upcase (s[i]); case c of '0'..'9': digit:= ORD(c) - 48; 'A'..'Z': digit:= ORD(c) - 55; else done:= FALSE end; done:= done and (digit < base); if done then begin done:= (res < mdb) or ((res = mdb) and (digit <= mmb)); IF done then begin res:= res * base + digit; Inc (i); end; end; end; if negate then res:= -1 * res; end; Result:= res; end;
0 0
- Delphi--2~36进制的转换
- Delphi下的进制转换
- Delphi中的进制转换
- delphi进制转换函数
- Delphi的类型转换
- Delphi的类型转换
- Delphi的类型转换
- Delphi的类型转换
- Delphi的类型转换
- Delphi 16进制与字符串转换
- Delphi的字符串与16进制的相互转换函数的汇编代码
- Delphi的类型转换[转]
- delphi 的类型转换函数
- Delphi 的 Utf-8 转换
- Delphi下将字符串转换成16进制的小函数
- delphi 二进制 八进制 十进制 十六进制 进制转换
- delphi 二进制 八进制 十进制 十六进制 进制转换
- Delphi 常用进制转换及CRC校验、和校验
- 跨域问题解决方案(HttpClient安全跨域 & jsonp跨域)
- keys
- android:shape属性详解
- iOS学习爬坑记录14:自定义远程推送通知铃声(Custom Alert Sounds)
- Android Camera Api的心得
- Delphi--2~36进制的转换
- Unity 5正式发布
- 单枪匹马:4年只做一个iOS游戏 收入破千万美元
- 每天一个linux命令
- (1.1.2)C的|、||、&、&&、异或、~、!运算 (交换两个值,不用临时变量)
- python自动登陆有cookie验证的网站
- 奇异值分解
- C#多线程(上)
- java 将源目录下的文件拷贝到另一个目录下