|
Как слепить 2 байта в int16 |
|
|
|
Jul 31 2009, 13:52
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Возник глупейший вопрос из названия темы. Почти на ровном месте. Компилятор CCS PCW. Обработчик прерывания на асме, ловит по радио пакеты. В составе пакетов передается несколько двубайтовых чисел. После успешного приема у меня есть парочки вида Код int8 CntTXL,CntTXH; Как мне без 8 сдвижек влево или без умножения CntTXH на 256 с прибавлением CntTXL получить Код int16 CntTX; ?
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
|
 |
Ответов
|
Jul 31 2009, 14:15
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Цитата(aaarrr @ Jul 31 2009, 17:08)  Чем "сдвижки" не устраивают? В реальности ведь компилятор 8 раз циклически сдвигать не станет, как, впрочем, и умножать в лоб на 256. Будет.. Пытаюсь вспомнить, когда-то как-то через union делал.. Тогда вообще без математики он понимает, что это 2-х байтовая переменная, отводит под двухбайтовое число те же байты в памяти, но чего-то в хэлпе найти не могу..
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
|
Jul 31 2009, 14:19
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Eddy71 @ Jul 31 2009, 18:15)  Будет.. Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего. Цитата(Eddy71 @ Jul 31 2009, 18:15)  Пытаюсь вспомнить, когда-то как-то через union делал.. Тогда вообще без математики он понимает, что это 2-х байтовая переменная, отводит под двухбайтовое число те же байты в памяти, но чего-то в хэлпе найти не могу.. Дык это не в хелпе, а в книжке по 'C' искать надо.
|
|
|
|
|
Jul 31 2009, 14:42
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Цитата(aaarrr @ Jul 31 2009, 17:19)  Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего. Дык это не в хелпе, а в книжке по 'C' искать надо. Нашел. Всё очень просто оказалось: Код CntTX = make16(CntTXh,CntTXh);
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
Сообщений в этой теме
Eddy71 Как слепить 2 байта в int16 Jul 31 2009, 13:52    aaarrr Цитата(Eddy71 @ Jul 31 2009, 18:42) Нашел... Jul 31 2009, 14:45     Сергей Борщ Цитата(aaarrr @ Jul 31 2009, 17:45) Ужас,... Aug 1 2009, 09:03      Eddy71 Цитата(Сергей Борщ @ Aug 1 2009, 12:03) Н... Aug 1 2009, 16:15       defunct Цитата(Eddy71 @ Aug 1 2009, 19:15) если г... Aug 2 2009, 23:57       _Pasha Цитата(Eddy71 @ Aug 1 2009, 19:15) Почему... Aug 3 2009, 05:52        Eddy71 Цитата(_Pasha @ Aug 3 2009, 08:52) По тем... Aug 3 2009, 09:41         zltigo Цитата(Eddy71 @ Aug 3 2009, 12:41) Каждый... Aug 3 2009, 09:51         SSerge Цитата(Eddy71 @ Aug 3 2009, 15:41) С комп... Aug 3 2009, 11:15          _Pasha Цитата(SSerge @ Aug 3 2009, 14:15) А кое-... Aug 3 2009, 11:43  defunct Цитата(Eddy71 @ Jul 31 2009, 17:15) Будет... Jul 31 2009, 15:07   AHTOXA Цитата(defunct @ Jul 31 2009, 21:07) Кодu... Jul 31 2009, 17:04    defunct Цитата(AHTOXA @ Jul 31 2009, 20:04) С ... Jul 31 2009, 17:38  SasaVitebsk Цитата(Eddy71 @ Jul 31 2009, 17:15) Будет... Jul 31 2009, 17:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|