Как преобразовать char в short int - C (СИ)
Формулировка задачи:
Стоит задача преобразовать char в short integer. Гугление не помогло.
Возможно я изначально не правильно мыслю по поводу решения поставленной задачи. Задача: читаем из консоли символ и кидаем его в последовательный порт. По задача мне необходимо кинуть в порт 2 байта. Причем один байт это адрес(определяется define или что-то типо того) а второй байт команда, которая должна быть считана из stdin.
Мое решение:
Короче сам понимаю что бред но по другому не смог придумать. В идеале нужно ввести символ(число или прямо в шестнадцатеричном формате байт) и он должен быть передан в порт. В общем не могу с одним байтом нормально поработать. Поэтому смирился с тем, что пишу в порт 2 байта(short int).
Спасибо.
main(){ char cmd[2]; int adr; gets(cmd); write(fd, &atoi(cmd), sizeof(atoi(cmd))); write(fd, &adr, sizeof(adr));
Решение задачи: «Как преобразовать char в short int»
textual
Листинг программы
char str[100]; int val; gets (str); sscanf (str, "%x", &val);
Объяснение кода листинга программы
- В начале кода объявляется массив char str[100] для хранения строки.
- Затем объявляется переменная int val для хранения целочисленного значения.
- Далее, с помощью функции gets (str), в массив str считывается строка из стандартного ввода.
- И, наконец, с помощью функции sscanf (str,
%x
, &val), из строки str извлекается шестнадцатеричное число и преобразуется в целое число, которое сохраняется в переменной val.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д