Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

c# high byte, low byte

19K
17 февраля 2010 года
WantToProg
63 / / 19.01.2009
Помогите пожалуйста решить следующую задачу.
У меня есть два значения, например 151 и 38, из них, 38 является старшим байтом, а 151 младшим. Какая функция в C# исползуется для получения результата?

Пример в ручную решается так:151 = { 0x97 }, 38 = { 0x26 };
0х2697(шестнадцатиричное значение) = 9879 (десятичное значение)
7
17 февраля 2010 года
@pixo $oft
3.4K / / 20.09.2006
Фсмысле?Вам надо разбить на байты или получить слово?
Если 1е,то остаток от деления на 256 и целое от того же,если 2е,то LowByte*256+HighByte(если использовать порядок Intel–младший байт по младшему адресу)
Ещё,помнится,в C++ был макрос MAKEWORD.Насчёт решёток не знаю

Upd:риальне не подумал!:)
Забыл про сдвиг.См. ниже пост hardcase
5
17 февраля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: WantToProg
Какая функция в C# исползуется для получения результата?

Голова.

 
Код:
short Combine(byte hi, byte lo) {
    return (short)((hi << 8) | lo)
}

Альтернативой может стать BitConverter.ToInt16, но для него нужно изготавливать массив, что неспортивно.
19K
17 февраля 2010 года
WantToProg
63 / / 19.01.2009
Цитата: hardcase
Голова.
 
Код:
short Combine(byte hi, byte lo) {
    return (short)((hi << 8) | lo)
}

Альтернативой может стать BitConverter.ToInt16, но для него нужно изготавливать массив, что неспортивно.



Благодарю, но я все таки воспользовался BitConverter.ToInt16, в моем случае показалось удобным. Надо вообще подразобраться со сдвигом, не понимаю что это такое :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог