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

 
 
> >>, Что означает эта запись?
niktagor
сообщение Jul 1 2009, 16:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 24-06-09
Пользователь №: 50 601



Братцы, я с языком си знаком слабовато. Что означает вот эта запись? Подскажите пожалуйста.

*pDMA_DBP = (unsigned short)((unsigned int)sSPORT0_TX_Descriptor >> 16);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dreamer
сообщение Jul 24 2009, 07:38
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 13-01-06
Из: Санкт-Петербург
Пользователь №: 13 154



Цитата
Если следовать стандарту, то получается, что отрицательные вообще нельзя сдвигать, так как результат непредсказуем. Тем не менее все компиляторы, имеющиеся у меня под рукой, выдали результат:

Результат предсказуем как грабли и прописан в стандарте wink.gif

В языке С для операции правого сдвига для знаковых типов есть определенное правило.
Если старший бит равен нулю, то левые поля заполняются нулями.
Если старший бит равен единице, то поля заполняются единицами.

Отсюда следствие - положительные числа сдвигаются "как есть", а отрицательные числа, поскольку имеют в старшем бите единицу, сдвигаются вправо с заполнением единицей.
Пример:
0х40 >> 2 == 0x10;
0xC0 >> 2 == 0xF0;

0хС0 в десятичном представлении для знакового типа - это -64, а 0xF0 - это -16.


--------------------
Все врут (с) /M.D.House/
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- niktagor   >>   Jul 1 2009, 16:01
- - rezident   Переменная sSPORT0_TX_Descriptor приводится к типу...   Jul 1 2009, 16:59
|- - niktagor   Спасибо, все понял!   Jul 2 2009, 07:51
|- - demiurg_spb   То, что понял - это хорошо! Но очень полезно С...   Jul 2 2009, 09:20
- - defunct   >> - обозначает сдвиг вправо. x >> n ...   Jul 1 2009, 23:42
|- - rezident   Цитата(defunct @ Jul 2 2009, 05:42) Всегд...   Jul 2 2009, 09:50
|- - 777777   Цитата(defunct @ Jul 2 2009, 03:42) >...   Jul 2 2009, 10:30
|- - defunct   Цитата(777777 @ Jul 2 2009, 13:30) Правил...   Jul 2 2009, 12:12
|- - 777777   Цитата(defunct @ Jul 2 2009, 16:12) Cобсн...   Jul 3 2009, 10:44
|- - defunct   Цитата(777777 @ Jul 3 2009, 13:44) Так чт...   Jul 3 2009, 14:29
|- - 777777   Цитата(defunct @ Jul 3 2009, 18:29) Разни...   Jul 3 2009, 17:21
- - DpInRock   >> в Сях - это деление на степень двойки. Во...   Jul 2 2009, 02:16
- - DpInRock   ЦитатаВот так проще всего описать. Ключевое слово....   Jul 2 2009, 11:02
|- - Xenia   Цитата(Dreamer @ Jul 24 2009, 10:38) Отсю...   Jul 24 2009, 07:53
|- - Сергей Борщ   Цитата(Xenia @ Jul 24 2009, 10:53) Думает...   Jul 24 2009, 08:08
- - Dreamer   ЦитатаС чего бы вдруг 0xC0 быть байтом? С того, ч...   Jul 24 2009, 08:14
|- - Xenia   Если это char, да еще и знаковый, то возражений у ...   Jul 24 2009, 08:28
- - Dreamer   ЦитатаЕсли это char, да еще и знаковый, то возраже...   Jul 24 2009, 08:39


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

 


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


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