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

 
 
> Почему не работает сдвиг битов, for IAR MSP430
*rust*
сообщение Nov 11 2011, 08:18
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 109
Регистрация: 19-01-11
Пользователь №: 62 335



Добрый день!

unsigned long total = 0; //32bit
unsigned int part1 = 0xAABB; //16bit
unsigned int part2 = 0xCCDD; //16bit

total = ((part1 << 16) + part2);

Результат получается total = 0x0000CCDD;

При компиляции выдает сообщение, что слишком большой сдвиг. Если вместо 16 поставить 8, все нормально.

Почему не выходит сдвинуть больше 8-ми разрядов?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Bill
сообщение Nov 11 2011, 08:25
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(*rust* @ Nov 11 2011, 12:18) *
Добрый день!

unsigned long total = 0; //32bit
unsigned int part1 = 0xAABB; //16bit
unsigned int part2 = 0xCCDD; //16bit

total = ((part1 << 16) + part2);

Результат получается total = 0x0000CCDD;

При компиляции выдает сообщение, что слишком большой сдвиг. Если вместо 16 поставить 8, все нормально.

Почему не выходит сдвинуть больше 8-ми разрядов?

Код
total = (((long)part1 << 16) + part2);
Или нет?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 14:39
Рейтинг@Mail.ru


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