помогите разобраться в преобразовании типов

Тема в разделе "WASM.BEGINNERS", создана пользователем roOstYderty, 24 авг 2007.

  1. roOstYderty

    roOstYderty New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2007
    Сообщения:
    2
    надо из числа s типа инт получить хекс unsigned char res[]

    имеем
    int s=24834; // printf("%X",s); --> 6102

    надо значение этой переменной запихнуть в массив res
    unsigned char res[2]; // res[0]="\x61"; res[1]="\x02";



    уже много часов немогу решить эту простую задачу.
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    roOstYderty
    Типо так:
    Код (Text):
    1. res[0] = unsigned char(hex_int >> 8);
    2. res[1] = unsigned char(hex_int);
     
  3. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    Booster
    а не так?
    Код (Text):
    1. res[0] = (unsigned char)(hex_int & 0xFF);
    2. res[1] = (unsigned char)(hex_int >> 8);
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    rei3er
    Только and не обязателен - при касте в меньший тип старшие части всё равно отбрасываются компилятором.
     
  5. roOstYderty

    roOstYderty New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2007
    Сообщения:
    2
    угу, разобрался с этим. Недавно начал си изучать, не думал, что тут так просто типы преобразовывать.
    спасибо, что подтолкнули в нужном направлении.