|
Как разбить 2 байта по байту)) |
|
|
|
 |
Ответов
|
Oct 19 2008, 13:29
|
Местный
  
Группа: Новичок
Сообщений: 493
Регистрация: 18-06-06
Пользователь №: 18 143

|
Цитата(Палыч @ Oct 17 2008, 15:29)  или через union... Ну да. union LOG { unsigned char aa[2], unsigned int dd; }ff; unsigned char bb, сс; unsigned int big; dd.ff = big; bb = ff.aa[0]; cc = ff.aa[1]; Вроде бы так должно быть?
|
|
|
|
|
Oct 19 2008, 15:16
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(lks @ Oct 19 2008, 15:29)  Вроде бы так должно быть?  Отнюдь  Цитата union LOG { unsigned char aa[2], unsigned int dd; }ff; int штука коварная и непереносимая в некоторых случаях. В Вашем случае 'unsigned short' И зачем делать union c обезличенным массивом  union my_short { unsigned short dd; unsigned char lo; unsigned char hi; } ff; И вообще, если не описывать union каждый раз, то typedef union my_short { unsigned short dd; unsigned char lo; unsigned char hi; } my_short_t; my_short_t ff; Цитата unsigned int big; unsigned short big; Цитата dd.ff = big; ff.dd = big; С точностью до наоборот. И вообще промежуточная переменная big просто лишняя - надо сразу использовать ff.dd Цитата bb = ff.aa[0]; cc = ff.aa[1]; bb = ff.lo; cc = ff.hi;
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 20 2008, 07:08
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(zltigo @ Oct 19 2008, 18:16)  union my_short { unsigned short dd; unsigned char lo; unsigned char hi; } ff; Код union my_short { unsigned short dd; struct { unsigned char lo; unsigned char hi; }; } ff;
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
Xenom0rph Как разбить 2 байта по байту)) Oct 17 2008, 11:24 Xenom0rph Цитата(Палыч @ Oct 17 2008, 15:29) Наприм... Oct 17 2008, 11:59  Палыч Цитата(Xenom0rph @ Oct 17 2008, 14:59) У ... Oct 17 2008, 12:07   Xenom0rph Цитата(Палыч @ Oct 17 2008, 16:07) Ошибоч... Oct 17 2008, 12:54    zltigo Цитата(Сергей Борщ @ Oct 20 2008, 09:08) ... Oct 20 2008, 08:04 Огурцов На чем пишем ?
В WinAVR/GCC можно сделать так
#d... Oct 17 2008, 12:02 Demeny Цитата(Xenom0rph @ Oct 17 2008, 15:24) Во... Oct 17 2008, 12:09 Палыч Цитата(Demeny @ Oct 17 2008, 15:09) Не ну... Oct 17 2008, 12:21 DiMomite В CVAVR надо писать так: eeprom unsigned char a[10... Oct 17 2008, 22:52 Xenom0rph Цитата(DiMomite @ Oct 18 2008, 02:52) В C... Oct 18 2008, 10:25 smalcom вроде небыло варианта
unsigned int uiA = 0xABCD
u... Oct 19 2008, 02:00 zltigo Цитата(smalcom @ Oct 19 2008, 04:00) врод... Oct 19 2008, 09:42 smalcom ЦитатаОчень жаль, что теперь "eсть" sad.... Oct 19 2008, 11:49 zltigo Цитата(smalcom @ Oct 19 2008, 13:49) ...и... Oct 19 2008, 13:07 g-gabber __asm{
mov ax,[value]
movzx ecx,al
movzx edx,ah
} Oct 22 2008, 08:07 zltigo Цитата(g-gabber @ Oct 22 2008, 10:07... Oct 22 2008, 08:25  g-gabber Цитата(zltigo @ Oct 22 2008, 10:25) К чем... Oct 22 2008, 08:49 zltigo Цитата(g-gabber @ Oct 22 2008, 10:49... Oct 22 2008, 18:18 g-gabber Цитата(zltigo @ Oct 22 2008, 20:18) 1) в ... Oct 23 2008, 12:20  zltigo Цитата(g-gabber @ Oct 23 2008, 14:20... Oct 23 2008, 20:31   g-gabber Цитата(zltigo @ Oct 23 2008, 22:31) Совер... Oct 23 2008, 21:30
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|