Загрузка данных


Понял, извини. Вот каждое задание отдельным кодом, как ты просил.

---

Задание 1

```c
#include <stdio.h>

int main(void)
{
    int a = 12, b = 10;

    // a = 0000 1100
    // b = 0000 1010

    printf("a & b  = %d\n", a & b);   // 8
    printf("a | b  = %d\n", a | b);   // 14
    printf("a ^ b  = %d\n", a ^ b);   // 6
    printf("~a     = %d\n", (unsigned char)~a); // 243
    printf("a << 2 = %d\n", a << 2);  // 48
    printf("a >> 1 = %d\n", a >> 1);  // 6

    return 0;
}
```

---

Задание 2

```c
#include <stdio.h>

int main(void)
{
    int x = 1, y = 2;

    printf("%d\n", x & y);    // 0
    printf("%d\n", x && y);   // 1
    printf("%d\n", x | y);    // 3
    printf("%d\n", x || y);   // 1
    printf("%d\n", 2 & 3);    // 2
    printf("%d\n", 2 && 3);   // 1

    return 0;
}
```

---

Задание 3

```c
#include <stdio.h>

int main(void)
{
    unsigned char x = 0xB7;   // 1011 0111

    printf("x & 0xF0 = 0x%X\n", x & 0xF0);   // 0xB0
    printf("x | 0x0F = 0x%X\n", x | 0x0F);   // 0xBF
    printf("x ^ 0x0F = 0x%X\n", x ^ 0x0F);   // 0xB8

    if ((x & 0x04) != 0)
        printf("2-й бит установлен\n");
    else
        printf("2-й бит не установлен\n");

    return 0;
}
```

---

Задание 4

```c
#include <stdio.h>

int main(void)
{
    unsigned char z = 0;

    printf("~0         = %u\n", (unsigned char)~z);           // 255
    printf("~0 << 1    = %u\n", (unsigned char)(~z << 1));    // 254
    printf("~0 << 4    = %u\n", (unsigned char)(~z << 4));    // 240
    printf("~(~0 << 4) = %u\n", (unsigned char)~(~z << 4));   // 15
    printf("~(~0 << 1) = %u\n", (unsigned char)~(~z << 1));   // 1
    printf("~(~0 << 0) = %u\n", (unsigned char)~(~z << 0));   // 0

    return 0;
}
```

Вот теперь каждое задание — отдельная программа.