[杂谈] 一个整数转其二进制表示的小函数

应群友的要求写的一个小函数,将一个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就好了。

分享到: