Бинарный код записать в переменную char - C (СИ)
Формулировка задачи:
Имею я например следующую переменную:
Подскажите, каким образом значение переменной можно записать в виде символа, т.е. сhar занимает в памяти компьютера 1 байт т.е. 8 бит, в переменной cc значение "10100101". Т.е. по сути 8-ми знакам(единицы и нули) данной последовательности "10100101"(если данную последовательность рассматривать как записть 1 и 0 в памяти компьютера) соответствует какой-то знак. Вот этот то знак я и хочу вывести на экран либо записать в переменную типа char.
Ccылке тоже буду оч рад!!!!
char *cс = "10100101"
Решение задачи: «Бинарный код записать в переменную char»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char* cc = "10100101";
unsigned char c = (unsigned char)strtol(cc, NULL, 2);
printf("Hex: %hhx Dec: %hhu\n", c, c);
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с библиотекой stdlib.h и для работы с файлами ввода/вывода stdio.h
- Объявляем функцию main, которая является точкой входа в программу
- Объявляем переменную cc типа char* и инициализируем её строковым литералом
10100101 - Приводим указатель cc к типу unsigned char и сохраняем результат в переменную c
- Преобразуем переменную c в шестнадцатеричную систему счисления с помощью функции printf
- Выводим значение переменной c в десятичной системе счисления с помощью функции printf
- Возвращаем 0, чтобы указать, что программа успешно завершилась