Страница: 1 |
Может кто обьяснит действие операндав сдвига >> и << в вышеуказанных языках......Сам я не сталкивался с этим ...т.к. в VB нет таковых .... Подскажите плиз...... и если можно поподробней ..... Заранее благодарен .........
Попробую объяснить. Это ОПЕРАЦИИ побитового сдвига. Они работают только для целочисленных операндов. Т.е. 4<<2 авно 16 Пердставим числа в двоичном виде: 100 << 10 ====== 10000 Сдвигаем число 100 на 10 (два) разряда влево. ============================================ То же самое обстоит со здвигом вправо (>>) 4>>2 = 1 ====================== Вообще операция: a< равноценна операции a*2^b (a умножить на 2 в степени b), а операция: a>>b равноценна операции: a/(2^b)(a разделить на 2 в степени b), где a и b- любые целые числа. Надеюсь, я достаточно доходчиво объяснил Благодарю, вроде понятно ..... Однако почему 1000 >> 4 = 3 никак в толк не возьму .... Вроде по алгоритму 1000/(2^4) должен быть другой результат ..... Обьясни ... где грабли Поправочка 1000 >> 4 всёже равно 62 Возможно вот такой алгоритм a >> b = CByte(a/(2^b)) Это ОПЕРАЦИИ побитового сдвига. Они работают только для ЦЕЛОЧИСЛЕННЫХ операндов. Т.е. допускаются только целые числа (1, 2, 3, 4 и т.д.) => они будут сами ОКРУГЛЯТЬСЯ до ЦЕЛОЧИСЛЕННЫХ, это спецификация компилятора Си. Страница: 1 |
Вопрос: Господа полиглоты, вопрос: Операнды в C#, C++, ...
Добавлено: 20.06.03 05:20
Автор вопроса: Creator
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #1
Добавлено: 20.06.03 11:29
Номер ответа: 2
Автор ответа:
Creator
Вопросов: 11
Ответов: 61
Профиль | | #2
Добавлено: 20.06.03 15:06
Номер ответа: 3
Автор ответа:
Creator
Вопросов: 11
Ответов: 61
Профиль | | #3
Добавлено: 20.06.03 15:27
Номер ответа: 4
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #4
Добавлено: 20.06.03 18:16