ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
12158 Топик полностью
Алексей Мусин (28.07.2004 09:14, просмотров: 1) ответил µ на Вопросы по Си сюда можно засылать? :-) Есть вопрос. Как преобразовать два байта в целое со знаком?
SM выиграл. Фенька в промежуточном явном приведении к типу signed char 
#include 
#include 

void main (void)
{
    unsigned char high_byte = 0xFF;  // -251 dec
    unsigned char low_byte  = 0x05;

    int result;

    result = ((unsigned char) low_byte) | (((int)((signed char)high_byte)) << 8);
    printf ("result = %ld\n", result);

    result = low_byte | ( (int)(signed char)high_byte * 256 );
    printf ("result = %ld\n", result);

    result = low_byte | ( (int)(signed char)high_byte << 8 );
    printf ("result = %ld\n", result);

    getch ();
}