请教大家一个问题,不好描述,看看源码说话吧
function IntToBin(Value: Byte): string;overload;
var
i: Integer;
begin
SetLength(result, 8);
for i := 1 to 8 do
begin
if ((Value shl (i - 1)) shr 7) = 0 then
result[ i ] := '0'
else
result[ i ] := '1';
end;
end;
function IntToBin(Value: Byte): string;overload;
var
i: Integer;
tmpByte : Byte;
begin
SetLength(result, 8);
for i := 1 to 8 do
begin
tmpByte := Value shl (i - 1);
tmpByte := tmpByte shr 7;
if tmpByte = 0 then
result[ i ] := '0'
else
result[ i ] := '1';
end;
end;
输入4,前一个输出:00000111,后一个输出00000100,哪位大侠给指导一下原因?
d7和d2007好像都是这样!
[ 本帖最后由 Redbreast 于 2009-6-30 17:22 编辑 ]
|