Intereting Posts
Где получить последний стандартный документ ANSI C Правильный способ получения предпочтительного размера элементов управления Windows Почему rand () + rand () создает отрицательные числа? Linux-эквивалент I_PUSH segmentation fault из-за функции initialize () при изменении размера огромного выделения страницы устаревшее преобразование из строковой константы в ‘char *’ в c Массив переменной длины с длиной 0? Поведение алгоритма Петерсона для различных флагов оптимизации Получить разделитель каталога в Windows? (‘\’, ‘/’, так далее.) Оптимизация разворота цикла, как это работает Почему нужно указывать указатель на массив перед передачей в качестве параметра функции с аргументом типа массива? Членная переменная статической структуры в C Можно ли использовать функцию asm с переменной ac-string вместо строкового литерала в качестве аргумента? Какой предопределенный макрос можно использовать для обнаружения clang? sqlite3_bind_text для выбора, другой результат в подготовленном выражении vs string SQL

Преобразование из двоичного кода в char в C

Я смущен тем, как преобразовать из двоичного значения в char в c.

Например, допустим, у меня есть 01010110 и вы хотите напечатать соответствующую букву «V». Как мне это сделать?

Спасибо за любую помощь!

 #include  #include  int main(void) { char *data = "01010110"; char c = strtol(data, 0, 2); printf("%s = %c = %d = 0x%.2X\n", data, c, c, c); return(0); } 

Выход:

 01010110 = V = 86 = 0x56 

Рекомендации:

  • strtol()
  • Правильное использование strtol()

Вы можете использовать strtol() для анализа числа в строке. Последний аргумент (в этом случае 2) является основанием для преобразования.

 char c = strtol("01010110", (char **)NULL, 2); 

Подробнее об этом и других функциях синтаксического анализа здесь .

Что-то немного другое:

Из двоичного, я математически вычислен int и просто литой int в char.

 int i; char c = (char)i;