home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------- *)
- (* BITS.INC *)
- (* Prozeduren und Funktionen zum setzen, löschen, *)
- (* testen und prüfen von Bits. *)
- (* ------------------------------------------------- *)
-
- TYPE BitSet = ARRAY[0..15] OF BYTE; (* oder BOOLEAN *)
-
- Procedure SetBit (VAR HalbWort: INTEGER; n: INTEGER);
-
- BEGIN
- HalbWort := HalbWort OR (1 shl n);
- END; (* 0.00030 sek *)
-
-
- Procedure DelBit (VAR HalbWort: INTEGER; n: INTEGER);
-
- BEGIN
- HalbWort := NOT (1 shl n) AND HalbWort;
- END; (* 0.00030 sek *)
-
-
- FUNCTION IfBit (HalbWort, n: INTEGER): BOOLEAN;
-
- BEGIN
- IfBit := (HalbWort OR (1 shl n) = HalbWort);
- END; (* 0.00033 sek *)
-
-
- PROCEDURE UnpackBit (VAR Bits : BitSet;
- Halbwort: INTEGER);
- VAR i: INTEGER;
-
- BEGIN
- i := 0;
- FillChar(Bits, 16, 0);
- WHILE HalbWort <> 0 DO BEGIN
- Bits[i] := HalbWort MOD 2;
- HalbWort := HalbWort shr 1;
- i := Succ(i);
- END;
- END; (* BYTE : 0.00900 sek *)
- (* BOOLEAN: 0.00943 sek *)
-
- PROCEDURE Packbit (Bits: BitSet;
- VAR: HalbWort: INTEGER);
- VAR i: INTEGER;
-
- BEGIN
- HalbWort := 0;
- FOR i := 0 TO 15 DO
- IF Bits[i] THEN (* IF Bits[i] <> 0 THEN *)
- HalbWort := HalbWort OR (1 shl i);
- END;