Как преобразовать char в short int - C (СИ)

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

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

Стоит задача преобразовать char в short integer. Гугление не помогло. Возможно я изначально не правильно мыслю по поводу решения поставленной задачи. Задача: читаем из консоли символ и кидаем его в последовательный порт. По задача мне необходимо кинуть в порт 2 байта. Причем один байт это адрес(определяется define или что-то типо того) а второй байт команда, которая должна быть считана из stdin. Мое решение:
main(){
    char cmd[2];
    int adr;
 
    gets(cmd);
    write(fd, &atoi(cmd), sizeof(atoi(cmd)));
    write(fd, &adr, sizeof(adr));
Короче сам понимаю что бред но по другому не смог придумать. В идеале нужно ввести символ(число или прямо в шестнадцатеричном формате байт) и он должен быть передан в порт. В общем не могу с одним байтом нормально поработать. Поэтому смирился с тем, что пишу в порт 2 байта(short int). Спасибо.

Решение задачи: «Как преобразовать char в short int»

textual
Листинг программы
char str[100];
int val;
gets (str);
sscanf (str, "%x", &val);

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

  1. В начале кода объявляется массив char str[100] для хранения строки.
  2. Затем объявляется переменная int val для хранения целочисленного значения.
  3. Далее, с помощью функции gets (str), в массив str считывается строка из стандартного ввода.
  4. И, наконец, с помощью функции sscanf (str, %x, &val), из строки str извлекается шестнадцатеричное число и преобразуется в целое число, которое сохраняется в переменной val.

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


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

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

7   голосов , оценка 3.714 из 5
Похожие ответы