|
|
|
Приоритет выполнения операций
|
|||
|---|---|---|---|
|
#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, 19:13 |
|
||
|
Приоритет выполнения операций
|
|||
|---|---|---|---|
|
#18+
так у сложения и деления более всокий приоритет, они вычисляются до сдвига. А вы сначала вычисляете сдвиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 21:23 |
|
||
|
Приоритет выполнения операций
|
|||
|---|---|---|---|
|
#18+
почему сдвиг числа 50 на 68 разрядов влево даёт результат 800? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 01:24 |
|
||
|
Приоритет выполнения операций
|
|||
|---|---|---|---|
|
#18+
Makc_ckaMпочему сдвиг числа 50 на 68 разрядов влево даёт результат 800? Потому что int 32х битный. Поэтому сдвиг на 68 = сдвигу на 36 = сдвигу на 4 Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 10:54 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=187&tid=2127681]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
133ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 436ms |

| 0 / 0 |
