**[**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**]**