用pascal语言编写将十进制数转化为二进制和十六进制数

如题所述

以下提供10进制向2~16进制转换的函数,cc为10进制长整型,函数返回的结果为字符串:

function convert_b(cc:longint;b:integer):string;
var
k,i,j:integer;
bb:array[1..32] of char;
bbb,s:string;
begin
    {以下10进制再转为b进制,b不超过16}
    k:=1;
    repeat
        j:=cc mod b;
        case j of
            0..9:bb[k]:=chr(j+ord('0'));
            10:bb[k]:='A';
            11:bb[k]:='B';
            12:bb[k]:='C';
            13:bb[k]:='D';
            14:bb[k]:='E';
            15:bb[k]:='F';
        end;
        cc:=cc div b;
        if cc>0 then inc(k);
    until cc=0;
    bbb:='';
    for i:=k downto 1 do bbb:=bbb+bb[i];
    str(b:0,s);
    bbb:='('+bbb+')'+s;
    convert_b:=bbb;
end;

温馨提示:答案为网友推荐,仅供参考
相似回答