
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.02.2014, 19:13
|
|||
|---|---|---|---|
|
|||
Приоритет выполнения операций |
|||
|
#18+
Здравствуйте! Знаю, что подобных тем море, и они порядком надоели, но не судите строго. Взял книжку почитать и завис на этом: package javatest; public class JavaTest { public static void main(String[] args) { byte b1 = 50, b2 = -99; char c1 = 'A'; System.out.println((b1<<3 + c1<<2) % (b2>>5 / b1>>>2)); } } Внимание вопрос!?: Объясните откуда 3200?, если System.out.println(b1<<3); выведет 400 System.out.println(c1<<2); выведет 260 System.out.println(b2>>5); выведет -4 System.out.println(b1>>>2); выведет 12 но (400 + 260) % (-4 / 12) никак не 3200! Уважаемые форумчане, помогите разобраться, что к чему? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.02.2014, 21:23
|
|||
|---|---|---|---|
|
|||
Приоритет выполнения операций |
|||
|
#18+
так у сложения и деления более всокий приоритет, они вычисляются до сдвига. А вы сначала вычисляете сдвиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.02.2014, 01:24
|
|||
|---|---|---|---|
|
|||
Приоритет выполнения операций |
|||
|
#18+
почему сдвиг числа 50 на 68 разрядов влево даёт результат 800? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.02.2014, 10:54
|
|||
|---|---|---|---|
|
|||
Приоритет выполнения операций |
|||
|
#18+
Makc_ckaMпочему сдвиг числа 50 на 68 разрядов влево даёт результат 800? Потому что int 32х битный. Поэтому сдвиг на 68 = сдвигу на 36 = сдвигу на 4 Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2127681]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 515ms |

| 0 / 0 |
