⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bin32hdl.pas

📁 wbs43open-src.zip 数字隐藏工具
💻 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 + -