Перевод 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 символов с пробелами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д