应群友的要求写的一个小函数,将一个32位整数转换为其二进制表示:
function IntToBinStr(v: Integer): String; var b: array [0 .. 32] of Char; o: Integer; const Chars: array [0 .. 1] of Char = ('0', '1'); begin o := 31; if v <> 0 then begin while v <> 0 do begin b[o] := Chars[v and $1]; v := v shr 1; Dec(o); end; b[32] := #0; Result := PChar(@b[o + 1]); end else Result := '0'; end;
至于调用方式,则很简单,直接象 IntToBinStr(100) 就可以。如果想要前面保留多少个0,那你在长度上在前面加上n个0就好了。