Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // sets the n-th bit in |bytes|. num_bytes is the number of bytes in the array
- // result is 0 on success, non-zero on failure (offset out-of-bounds)
- int set_bit(char* bytes, unsigned long num_bytes, unsigned long offset)
- {
- // make sure offset is valid
- if(offset < 0 || offset > (num_bytes<<3)-1) { return -1; }
- //set the right bit
- bytes[offset >> 3] |= (1 << (offset & 0x7));
- return 0; //success
- }
- //gets the n-th bit in |bytes|. num_bytes is the number of bytes in the array
- // returns (-1) on error, 0 if bit is "off", positive number if "on"
- int get_bit(char* bytes, unsigned long num_bytes, unsigned long offset)
- {
- // make sure offset is valid
- if(offset < 0 || offset > (num_bytes<<3)-1) { return -1; }
- //get the right bit
- return (bytes[offset >> 3] & (1 << (offset & 0x7));
- }
Add Comment
Please, Sign In to add comment