请写一个函数,实现功能:把十进制的一个数转化为三十六进制(50)

  • 主题发起人 主题发起人 abraveboy
  • 开始时间 开始时间
A

abraveboy

Unregistered / Unconfirmed
GUEST, unregistred user!
如题二进制用0和1表示,十进制用0到9十个数字表示,那三十六进制应该是0到35三十个数表示
 
Delphi 自带函数 IntToHex
 
没听说过有三十六进数
 
to de410:要转化为36进制的数,不是16进制to 李翔鹏:我也是第一次听说,这是一个公司的笔试题
 
只能处理整数,未验证 idata,itemp:integer; sRet :string; idata := 149999; s:=''; repeat itmp := idata mod 36; if (itemp <=9) then sRet := ord(itemp + 48)+sRet else sRet := ord(itemp + 55) +sRet; idata := idata div 36; until idata =0
 
function IntToStr36(siDatus,siCode,siLength:integer):string; // 数,进制,长度const scChar:array [0..35] of char='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';var si:integer; ss:string;begin if (siCode>36)or(siCode<2) then begin result:='error parameter'; exit; end; ss:=''; si=0; while (si<siLength)or(siDatus>0) do begin ss:=scChar[siDatus mod siCode]+ss; siDatus:=siDatus div siCode; end; result:=ss;end;
 
36进制 用10个数字+26个英文字母来表示 这样程序就好写了
 
正确答案:function TForm1.IntToStr36(siDatus,siCode,siLength:integer):string; // 数,进制,长度const scChar:array [0..35] of char='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';//const scChar:array [0..19] of char='0123456789ABCDEFGHIJ';var si:integer; ss:string;begin if (siCode>36)or(siCode<2) then begin result:='error parameter'; exit; end; ss:=''; si:=0; while (si<siLength)or(siDatus>0) do begin ss:=scChar[siDatus mod siCode]+ss; siDatus:=siDatus div siCode; Inc(Si); end; result:=ss;end;to foam: 还要再改一下
 
function IntToV36(X: Integer): String;var N, T: Integer; buf: array [0..15] of Byte;begin N:= 16; repeat Dec(N); T:= X mod 36; if T < 10 then buf[N]:= T + Ord('0') else buf[N]:= T + (Ord('A') - 10); X:= X div 36; until X = 0; T:= 16 - N; SetLength(Result, T); Move(buf[N], Result[1], T);end;
 
参考一下!!//十进制转其它进制,SCALE为进制数,2至36function TMainForm.Zex(D,scale:Int64):String;var remain:Int64;begin if (scale < 2) or (scale > 36) then begin Result := 'Error'; Exit; end; Result := ''; While D <> 0 do begin remain := D mod scale; D := D div scale; if remain > 9 then Result := Chr(remain+55) + Result else Result := Chr(remain+48) + Result; end;end;
 
后退
顶部