[an error occurred while processing this directive]
Господа! Битая тема - как в IAR из переменной типа INT выделить младший или старший байт? Должны же быть какие то макросы
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
prottoss
25 июля 2005 г. 21:35
Составить ответ
|||
Конференция
|||
Архив
Ответы
Типа так (+)
—
Codavr
(26.07.2005 09:24
193.233.48.103
, 129 байт)
лучше так
—
koyodza
(26.07.2005 10:23
83.170.240.226
, 279 байт)
Что-т я не врюхал. Про каких индейцев речь? Со времен турбо-с этим пользуюсь и никаких индейцев не видал.
—
Codavr
(26.07.2005 13:24
193.233.48.103
,
пустое
)
Big Endian / Little Endian
—
koyodza
(26.07.2005 13:47
83.170.240.226
, 98 байт)
Ну добавь в макрос определение какой эндиан компилер пользует и не заморачивайся со сдвигами (а это по моему мнению целое стадо индейцев)
—
Codavr
(26.07.2005 15:07
193.233.48.103
,
пустое
)
Ответ: http://c.snippets.org/browser.php
—
AS
(26.07.2005 00:10
68.165.91.68
,
пустое
)
В Кейле, где сначала старший, затем младший (+)
—
Андрей Сорокин
(26.07.2005 00:01
212.109.32.13
, 62 байт)
А что, правда big-endian??? PS.Не работал с "Кейлом"...
—
quark
(26.07.2005 07:34
213.171.38.20
,
пустое
)
Ответ:
—
NogaMag
(25.07.2005 22:48
83.237.105.108
, 309 байт)
Ответ: (+)
—
quark
(25.07.2005 22:37
213.171.38.20
, 67 байт)
раз уж вдаватся в указатели то проще и нагляднее через юнион. Темпаче что накомпилит тожесамое.
—
колян безпарольный
(26.07.2005 00:15
148.244.150.52
, 274 байт)
Ну, можно конечно, и левой рукой правое ухо..:))
—
quark
(26.07.2005 07:13
213.171.38.20
,
пустое
)
PS. И, к тому же, придется переписать ВСЮ программу, заменив в ней "myint" на "Z.Integer". А если прога 500 KB???
—
quark
(26.07.2005 07:44
213.171.38.20
,
пустое
)
Если лень замучила или программа длинная, нужно всего лишь написать #define myint Z.Integer после объявления Z.
—
-=John=-
(26.07.2005 07:59
212.45.24.131
,
пустое
)
Ответ: (+)
—
quark
(26.07.2005 09:23
213.171.38.20
, 109 байт)
Шутить изволите? А если "myint" передается из/в фунции, несколько раз переприсваивается? Все это будете отслеживать?
—
quark
(26.07.2005 08:07
213.171.38.20
,
пустое
)
?!?!
—
=L.A.=
(26.07.2005 09:09
213.134.214.10
,
пустое
)
Ошибся постом ->
—
quark
(26.07.2005 09:24
213.171.38.20
,
пустое
,
ссылка
)
Хидер с локализацией типов включается во все файлы проекта. Естественно дефайн должен быть с условной компиляцией. #ifndef / #endif
—
rezident
(26.07.2005 09:07
212.33.249.11
,
пустое
)
Поясняю (+)
—
quark
(26.07.2005 09:15
213.171.38.20
, 213 байт)
Дык вы бы как-то пооригинальнее с наименованием типов-то :) Выбирайте имена чтобы они не пересекались с другими стандартными обозначениями.
—
rezident
(26.07.2005 09:42
212.33.249.11
, 360 байт)
Так ведь не я ж имена предлагал... ->
—
quark
(26.07.2005 09:46
213.171.38.20
,
пустое
,
ссылка
,
картинка
)
жжете короче. low = myint, high = myint / 256 и усе
—
DASM
(26.07.2005 00:31
217.118.78.1
,
пустое
)
"high = myint / 256" - означает ариф. операцию, в то время, как чтение по след. адресу - нет.
—
quark
(26.07.2005 07:15
213.171.38.20
,
пустое
)
Это, пожалуй, самый нормальный способ будет. Здесь не важно расположение байтов (BE или LE).
—
Bill
(26.07.2005 08:15
195.239.108.5
,
пустое
)
Не согласен (+)
—
quark
(26.07.2005 08:41
213.171.38.20
, 567 байт)
Деление на 256 или сдвиг вправо на 8 эквивалентно получению старшего байта числа.
—
Bill
(26.07.2005 08:50
195.239.108.5
, 190 байт)
Зачем делать лишний сдвиг, если можно обойтись БЕЗ него?
—
quark
(26.07.2005 08:54
213.171.38.20
,
пустое
)
А где Вы увидели лишний сдвиг? Тут вообще никаких сдвигов нет.
—
Bill
(26.07.2005 09:01
195.239.108.5
,
пустое
)
Вот тут, по-подробнее, плиз..:))
—
quark
(26.07.2005 09:05
213.171.38.20
, 40 байт,
ссылка
)
Да все то же самое.
—
Bill
(26.07.2005 09:12
195.239.108.5
, 282 байт)
Вы просто по умолчанию рассчитываете на оптимизацию компилятора, а я предлагаю сделать это явно, в ручную. Кстати, что будет с Вашим кодом, если запретить компилятору оптимизацию?
—
quark
(26.07.2005 09:19
213.171.38.20
,
пустое
)
Хм... Конечно расчитываю. Я ведь постоянно использую компилятор
—
Bill
(26.07.2005 12:41
195.239.108.211
, 220 байт)
Сорри. Читать вместо "#ifdefined LE" -> "#ifdef LE"
—
quark
(26.07.2005 08:45
213.171.38.20
,
пустое
)
Тут есть одна хитрая хитрость. Все зависит от компилятора.
—
Bill
(26.07.2005 08:58
195.239.108.5
, 252 байт)
Да писал уже ->
—
quark
(26.07.2005 09:01
213.171.38.20
,
пустое
,
ссылка
)
Тогда тем более...
—
Bill
(26.07.2005 09:04
195.239.108.5
,
пустое
)
За что боролись, на то и напоролись.. :))
—
quark
(26.07.2005 09:08
213.171.38.20
,
пустое
)
:)))
—
Bill
(26.07.2005 09:13
195.239.108.5
,
пустое
)
Интересн, а утвержение, что 2*2=4, способно породить такой же флуд? :))
—
quark
(26.07.2005 09:26
213.171.38.20
,
пустое
)
Здесь все может быть. Только заикнись.
—
Bill
(26.07.2005 12:36
195.239.108.211
,
пустое
)
Да, и еще, компилер ругаться будет... Нехорошо это: char = int.
—
quark
(26.07.2005 07:37
213.171.38.20
,
пустое
)
PS. Если в регисте,
—
quark
(25.07.2005 22:40
213.171.38.20
, 20 байт)
лучше unsigned так как иди знай как компилятор чарактеры сдвигает, мож старший бит не сдвигает.
—
колян безпарольный
(26.07.2005 00:02
148.244.150.52
,
пустое
)
Старший бит не волнует, т.к. искомая величина 8-бит.
—
quark
(26.07.2005 07:25
213.171.38.20
, 268 байт)
Премного благодарен, оказывается проще простого, главное думать нужным местом :-)
—
prottoss
(25.07.2005 22:54
83.149.51.1
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru