[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]

    {
     MT>   Could someone please tell me how to write to/read from a particular
     MT>  bit in a number?  Do you have to break the number down into binary
     MT>  or is there some function somewhere that I haven't found yet?

    Here's some procs I wrote that should help you out:
    }

    Procedure SetBit(Var Number : Byte; Bit : Byte);

     Begin
      Number := Number OR (1 SHL Bit);
     End;

    Procedure ClearBit(Var Number : Byte; Bit : Byte);

     Begin
      Number := Number AND NOT (1 SHL Bit);
     End;

    Function ReadBit(Number, Bit : Byte) : Boolean;

     Begin
      ReadBit := (Number AND (1 SHL Bit)) <> 0;
     End;
    {
    OK, provided you know binary, this should be pretty simple to implement.  The
    bits are of course numbered 7-0.  SetBit sets a given bit to 1, ClearBit sets a
    given bit to 0, and ReadBit returns TRUE if 1, FALSE if 0.  Anyway, hope that
    helps...

                                          PsychoMan.
    }

[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]