Перевод hex в char* в том же виде - C (СИ)

Узнай цену своей работы

Формулировка задачи:

честно прошу прощения, но С++ меня избаловал + голова уже устала, и я ничего умнее не придумал как по индусовски сделать, но это плохой стиль... у меня есть регистр 1 байт, мне надо вывести его содержимое на ЖКИ дисплей в 16чном виде в отладочных целях, впринципе я написал функцию для вывода в bin и она работает(и при желании можно преобразовать из неё в hex кучей if()-ов, но это будет не красиво), хочется ещё и hex рядышком для удобства, но не придумал как сделать это попроще, смысл в том что у меня есть некий глобальный массив unsigned char S[20], и некая переменная unsigned char _state, мне просто нужно преобразовать записать в S те же символы что и в _state , т.е.:
// надо чтобы было так
_state=0x34;
S[0]='3';
S[1]='4';
for (i=2;i<20;i++)
S[i]=' ';
// функция имеет такой вид
void fff(unsigned char _state)
{
// функция просто меняет глобальный S[] в зав-
// исимости от аргумента _state
// 
}
не актуально, афтор вспомнил что в itoa можно задавать систему счисления))
#include <stdlib.h>
void print_hex(unsigned char state_)
{
itoa(state_,S,16);
    for (i=2;i<20;i++)
    S[i]=' ';
}
актуально, в том компиляторе в stdlib.h определена только старая
void itoa(int n,char *str);

Решение задачи: «Перевод hex в char* в том же виде»

textual
Листинг программы
void print_hex(unsigned char state_)
{
sprintf(S,"%h",state_);
    for (i=2;i<20;i++)
    S[i]=' ';
}

Объяснение кода листинга программы

В данном коде представлена функция printhex, которая принимает на вход один параметр типа unsigned char, названный state. Функция использует функцию sprintf для форматирования строки, в которую затем записывается значение параметра state в шестнадцатеричной системе счисления. Далее в цикле, который начинается с i=2 и продолжается до i<20, в массив S добавляются пробелы. Это делается для того, чтобы выровнять шестнадцатеричное число, записанное в S, до определенного количества символов (до 20). Таким образом, результатом работы функции будет вывод значения параметра state в шестнадцатеричной системе счисления, выровненного до 20 символов с пробелами.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5