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

 
 
> Преобразование типов WinAVR, Преобразование типов int16_t
Monet
сообщение Mar 30 2010, 18:49
Сообщение #1





Группа: Участник
Сообщений: 3
Регистрация: 14-03-10
Из: Донецк
Пользователь №: 55 960



Добрый день, уважаемые коллеги.

Возникла задача следующего характера: есть число типа int16_t, в WinAVR необходимо создать массив из двух элементов unsigned char, первый элемент - младший байт числа int16_t, а второй - соответственно старший байт.

Заранее всем спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ataradov
сообщение Mar 30 2010, 19:04
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



int16_t num;
unsigned char arr[2];

arr[0] = num & 0xff;
arr[1] = (num >> 8) & 0xff;

Или не портабельный вариант:

*((int16_t *)arr) = num;
Go to the top of the page
 
+Quote Post
Monet
сообщение Mar 30 2010, 19:15
Сообщение #3





Группа: Участник
Сообщений: 3
Регистрация: 14-03-10
Из: Донецк
Пользователь №: 55 960



Цитата(Taradov Alexander @ Mar 30 2010, 22:04) *
int16_t num;
unsigned char arr[2];

arr[0] = num & 0xff;
arr[1] = (num >> 8) & 0xff;

Или не портабельный вариант:

*((int16_t *)arr) = num;



Большое спасибо!!!
Go to the top of the page
 
+Quote Post



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

 


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


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