реклама на сайте
подробности

 
 
> Как слепить 2 байта в int16
Eddy71
сообщение Jul 31 2009, 13:52
Сообщение #1


Местный
***

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



Возник глупейший вопрос из названия темы. Почти на ровном месте. Компилятор CCS PCW. Обработчик прерывания на асме, ловит по радио пакеты. В составе пакетов передается несколько двубайтовых чисел. После успешного приема у меня есть парочки вида
Код
int8 CntTXL,CntTXH;

Как мне без 8 сдвижек влево или без умножения CntTXH на 256 с прибавлением CntTXL получить
Код
int16 CntTX;
?


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jul 31 2009, 14:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Eddy71 @ Jul 31 2009, 17:52) *
Как мне без 8 сдвижек влево или без умножения

Чем "сдвижки" не устраивают? В реальности ведь компилятор 8 раз циклически сдвигать не станет, как, впрочем, и умножать в лоб на 256.
Go to the top of the page
 
+Quote Post
Eddy71
сообщение Jul 31 2009, 14:15
Сообщение #3


Местный
***

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



Цитата(aaarrr @ Jul 31 2009, 17:08) *
Чем "сдвижки" не устраивают? В реальности ведь компилятор 8 раз циклически сдвигать не станет, как, впрочем, и умножать в лоб на 256.

Будет..
Пытаюсь вспомнить, когда-то как-то через union делал.. Тогда вообще без математики он понимает, что это 2-х байтовая переменная, отводит под двухбайтовое число те же байты в памяти, но чего-то в хэлпе найти не могу..


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 31 2009, 14:19
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Eddy71 @ Jul 31 2009, 18:15) *
Будет..

Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего.

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

Дык это не в хелпе, а в книжке по 'C' искать надо.
Go to the top of the page
 
+Quote Post
Eddy71
сообщение Jul 31 2009, 14:42
Сообщение #5


Местный
***

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



Цитата(aaarrr @ Jul 31 2009, 17:19) *
Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего.
Дык это не в хелпе, а в книжке по 'C' искать надо.

Нашел. Всё очень просто оказалось:
Код
CntTX = make16(CntTXh,CntTXh);

rolleyes.gif


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th July 2025 - 08:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01407 секунд с 7
ELECTRONIX ©2004-2016