Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Преобразование из int в short и обратно


Автор: PashaSem 26.1.2007, 13:10
Всем привет!
Мне нужно вытащить из устройства 32 bit значение 
С помощью функции получаю 
 short V1 = lData[0];
 short V2 = lData[1];
соответственно младший и старший !

Как мне из этих двух значений снова получить Int ?

Автор: Дрон 26.1.2007, 13:38
Да как хочешь smile
Самое простое
Код
int v = (int)V1 | ((int)V2 << 16);

Автор: PashaSem 26.1.2007, 14:08
К сожаление данный вариант не совсем подходит при исходном знеачении 32 bit  Int = 100000
значение 
short V1 = lData[0]= -31072
 short V2 = lData[1]= 1

Нужно учитывать что short V1 и short V2 знаковые!"

Автор: Дрон 26.1.2007, 14:13
Цитата(PashaSem @  26.1.2007,  14:08 Найти цитируемый пост)
Нужно учитывать что short V1 и short V2 знаковые!"

А ты их сделай беззнаковыми smile

Код
int v = (ushort)V1 | ((ushort)V2 << 16);

Автор: mr.DUDA 26.1.2007, 23:45
Можно для начала преобразовать int->uint, а потом раскладывать на тетрады.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)