?? bin32hdl.pas
字號:
unit Bin32Hdl;
interface
function SetBitIn32Word(Value: Longint; Digit: Byte; SetTo: Boolean): Longint;
function GetBitOf32Word(Value: Longint; Digit: Byte): Boolean;
implementation
function SetBitIn32Word(Value: Longint; Digit: Byte; SetTo: Boolean): Longint;
begin
If SetTo Then Begin
Case Digit Of
0: Value:=Value Or $00000001;
1: Value:=Value Or $00000002;
2: Value:=Value Or $00000004;
3: Value:=Value Or $00000008;
4: Value:=Value Or $00000010;
5: Value:=Value Or $00000020;
6: Value:=Value Or $00000040;
7: Value:=Value Or $00000080;
8: Value:=Value Or $00000100;
9: Value:=Value Or $00000200;
10: Value:=Value Or $00000400;
11: Value:=Value Or $00000800;
12: Value:=Value Or $00001000;
13: Value:=Value Or $00002000;
14: Value:=Value Or $00004000;
15: Value:=Value Or $00008000;
16: Value:=Value Or $00010000;
17: Value:=Value Or $00020000;
18: Value:=Value Or $00040000;
19: Value:=Value Or $00080000;
20: Value:=Value Or $00100000;
21: Value:=Value Or $00200000;
22: Value:=Value Or $00400000;
23: Value:=Value Or $00800000;
24: Value:=Value Or $01000000;
25: Value:=Value Or $02000000;
26: Value:=Value Or $04000000;
27: Value:=Value Or $08000000;
28: Value:=Value Or $10000000;
29: Value:=Value Or $20000000;
30: Value:=Value Or $40000000;
31: Value:=Value Or $80000000;
End;
End
Else Begin
Case Digit Of
0: Value:=Value And $FFFFFFFE;
1: Value:=Value And $FFFFFFFD;
2: Value:=Value And $FFFFFFFB;
3: Value:=Value And $FFFFFFF7;
4: Value:=Value And $FFFFFFEF;
5: Value:=Value And $FFFFFFDF;
6: Value:=Value And $FFFFFFBF;
7: Value:=Value And $FFFFFF7F;
8: Value:=Value And $FFFFFEFF;
9: Value:=Value And $FFFFFDFF;
10: Value:=Value And $FFFFFBFF;
11: Value:=Value And $FFFFF7FF;
12: Value:=Value And $FFFFEFFF;
13: Value:=Value And $FFFFDFFF;
14: Value:=Value And $FFFFBFFF;
15: Value:=Value And $FFFF7FFF;
16: Value:=Value And $FFFEFFFF;
17: Value:=Value And $FFFDFFFF;
18: Value:=Value And $FFFBFFFF;
19: Value:=Value And $FFF7FFFF;
20: Value:=Value And $FFEFFFFF;
21: Value:=Value And $FFDFFFFF;
22: Value:=Value And $FFBFFFFF;
23: Value:=Value And $FF7FFFFF;
24: Value:=Value And $FEFFFFFF;
25: Value:=Value And $FDFFFFFF;
26: Value:=Value And $FBFFFFFF;
27: Value:=Value And $F7FFFFFF;
28: Value:=Value And $EFFFFFFF;
29: Value:=Value And $DFFFFFFF;
30: Value:=Value And $BFFFFFFF;
31: Value:=Value And $7FFFFFFF;
End;
End;
SetBitIn32Word:=Value;
end;
function GetBitOf32Word(Value: Longint; Digit: Byte): Boolean;
var
IsSet: Boolean;
begin
IsSet:=False;
Case Digit Of
0: If (Value And $00000001)=$00000001 Then IsSet:=True;
1: If (Value And $00000002)=$00000002 Then IsSet:=True;
2: If (Value And $00000004)=$00000004 Then IsSet:=True;
3: If (Value And $00000008)=$00000008 Then IsSet:=True;
4: If (Value And $00000010)=$00000010 Then IsSet:=True;
5: If (Value And $00000020)=$00000020 Then IsSet:=True;
6: If (Value And $00000040)=$00000040 Then IsSet:=True;
7: If (Value And $00000080)=$00000080 Then IsSet:=True;
8: If (Value And $00000100)=$00000100 Then IsSet:=True;
9: If (Value And $00000200)=$00000200 Then IsSet:=True;
10: If (Value And $00000400)=$00000400 Then IsSet:=True;
11: If (Value And $00000800)=$00000800 Then IsSet:=True;
12: If (Value And $00001000)=$00001000 Then IsSet:=True;
13: If (Value And $00002000)=$00002000 Then IsSet:=True;
14: If (Value And $00004000)=$00004000 Then IsSet:=True;
15: If (Value And $00008000)=$00008000 Then IsSet:=True;
16: If (Value And $00010000)=$00010000 Then IsSet:=True;
17: If (Value And $00020000)=$00020000 Then IsSet:=True;
18: If (Value And $00040000)=$00040000 Then IsSet:=True;
19: If (Value And $00080000)=$00080000 Then IsSet:=True;
20: If (Value And $00100000)=$00100000 Then IsSet:=True;
21: If (Value And $00200000)=$00200000 Then IsSet:=True;
22: If (Value And $00400000)=$00400000 Then IsSet:=True;
23: If (Value And $00800000)=$00800000 Then IsSet:=True;
24: If (Value And $01000000)=$01000000 Then IsSet:=True;
25: If (Value And $02000000)=$02000000 Then IsSet:=True;
26: If (Value And $04000000)=$04000000 Then IsSet:=True;
27: If (Value And $08000000)=$08000000 Then IsSet:=True;
28: If (Value And $10000000)=$10000000 Then IsSet:=True;
29: If (Value And $20000000)=$20000000 Then IsSet:=True;
30: If (Value And $40000000)=$40000000 Then IsSet:=True;
31: If (Value And $80000000)=$80000000 Then IsSet:=True;
End;
GetBitOf32Word:=IsSet;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -