Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void bit_off(unsigned char *byte, int bit_number) {
- *byte ^= *byte &(0x80 >> bit_number);
- }
- void bit_on(unsigned char *byte, int bit_number) {
- *byte |= (0x80 >> bit_number);
- }
- void change_bit(unsigned char* byte, int bit_number) {
- *byte ^= (0x80 >> bit_number);
- }
- void print_bit(unsigned char *byte, int bit_number) {
- if ((0x80 >> bit_number) & (*byte))
- printf("1");
- else
- printf("0");
- }
- void print_byte(unsigned char *byte) {
- for (int i = 0; i < 8; i++)
- if ((0x80 >> i) & (*byte))
- printf("1");
- else
- printf("0");
- }
- int main() {
- unsigned char byte = 'a';
- int n1, n2, n3, n4;
- printf("Enter the bit's numbers [0..7]: ");
- scanf("%d %d %d %d", &n1, &n2, &n3, &n4);
- // n1 - погасить, n2 - включить, n3 - изменить, n4 - вывести
- printf("\nOriginal byte: ");
- print_byte(&byte);
- bit_off(&byte, n1);
- printf("\nBit %d is off: ", n1);
- print_byte(&byte);
- bit_on(&byte, n2);
- printf("\nBit %d is on: ", n2);
- print_byte(&byte);
- change_bit(&byte, n3);
- printf("\nBit %d was changed: ", n3);
- print_byte(&byte);
- printf("\nBit %d = ", n4);
- print_bit(&byte, n4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement