Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef BITCRUSHER_H
- #define BITCRUSHER_H
- #include <stdlib.h>
- /*
- 1 - 0000 0001 - 0 1
- 2 - 0000 0010 - 0 2
- 3 - 0000 0100 - 0 4
- 4 - 0000 1000 - 0 8
- 5 - 0001 0000 - 1 0
- 6 - 0010 0000 - 2 0
- 7 - 0100 0000 - 4 0
- 8 - 1000 0000 - 8 0
- */
- const char bit_masks[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
- const size_t bits = sizeof(bit_masks);
- const char CheckBit(char bit, char place)
- {
- return ((bit & bit_masks[place % bits]) != 0);
- }
- const char ProduceBit(char* booleans)
- {
- char i=0,temp = 0;
- for(;i<8;++i)
- {
- temp << 1;
- if(char[i]) ++temp;
- }
- return temp;
- }
- char* GenerateBytes(char bit)
- {
- char* temp_p;
- char i=0;
- temp_p = (char*)malloc(sizeof(char)*8);
- for(;i<8;++i)
- {
- temp_p[i] = ((bit & bit_masks[i % bits]) != 0);
- }
- return temp_p;
- }
- void ChangeBit(char* bit, char place, char new_value)
- {
- char* tmp;
- tmp = GenerateBytes(*bit);
- tmp[place % bits] = new_value;
- *bit = ProduceBit(tmp);
- free(tmp);
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement