function getbit(number:Integer;nBit:Byte;BitCount:TBitCount):byte;
begin
getbit:= byte((number shr (Ord(BitCount)-nBit)) and 1);
end;
//nbit第几位,Bit为8 16..value为0或1 ,返回设置位后的数
function SetBit(Number:integer;nBit:byte;BitCount:TBitCount;value:byte):Integer;
begin
SetBit:=0;
case value of
0:SetBit:=Number and not(1 shl (Ord(BitCount)-nBit));
1:SetBit:=Number or (1 shl (Ord(BitCount)-nBit));
end;
end;
//nBit第几位开始,iBit选择多少位
function getbits(Number:integer;nBit,iBit:Byte;BitCount:TBitCount):integer;
var n,temp:integer;
begin
temp:=0;
for n:=0 to ibit-1 do
temp:=SetBit(temp,Ord(BitCount)-n,BitCount,1);
getbits:=(number shr (Ord(BitCount)-nBit-iBit+1) and Temp);
end;
function int2bin(Number:Integer;BitCount:TBitCount):string;
var
ca:integer;
cb:string;
begin
cb:='''';
for ca:=1 to Ord(BitCount) do
cb:= cb + Format(''%x'',<getbit(Number,ca,BitCount)>);
Result:=cb;
end;
以上的函数,如果对汇编程序熟悉的朋友在Delphi嵌入汇编,运行速度应该比上面的代码快上很多