/
MaestroN
/
Eltex_Homework
Обзор
Документация
Войти
/
MaestroN
/
Eltex_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_3/task3.1.c
51 строка
2 KB
nikita_shub
Добавление второго и третьего задания
11 ноя 2024, 17:15
11 ноя 2024, 17:15
fab111e
Код
Авторство
О чём код?
#include <stdio.h> void printBin(int number); // Объявление функции int main(void) { int number; unsigned char myByte; char *ptr; // Объявление указателя printf("Введите целое число: "); scanf("%d", &number); // Очистка буфера ввода перед вводом символа while (getchar() != '\n'); // Удаляем остатки ввода printf("Введите однобайтовое число: "); scanf("%hhu", &myByte); int originalNumber = number; ptr = (char*)&number; // Указатель получает адрес переменной ptr += 2; // Переход к 3-му байту printf("Значение третьего байта до изменения = %d \n", *ptr); // Получение значения по 3-му адресу *ptr = myByte; // Меняем значение 3-го адреса на введенный байт printf("Значение третьего байта после изменения = %d \n", *ptr); // Получение значения по 3-му адресу printf("number = %d \n", number); // Новое значение number // Проверка кода в ручном формате printf("Ручная проверка: \n"); printf("Начальное значение number = %d\n", originalNumber ); printBin(originalNumber ); printf("Введенный байт = %d\n", myByte); printBin(myByte); int newNumber = (originalNumber & 0xFF00FFFF) | (myByte << 16); printf("Ожидаемое значение number после изменения: %d\n", newNumber); // Ожидаемое значение printBin(newNumber); return 0; } void printBin(int number) { int bit = sizeof(number) * 8; printf("Двоичное представление: "); for (int i = bit - 1; i >= 0; i--) { int bitValue = (number >> i) & 1; printf("%d", bitValue); } printf("\n"); }