![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
имеется выражение
Код:
a := (b and ($03 shl (i shl 1))) shr (i shl 1); a - byte; b - Word; i - byte от 7 до 0; Можно ли упростить данное выражение? |
|
#2
|
|||
|
|||
|
Код:
a := b shr (i*2) and 3; |
| Этот пользователь сказал Спасибо x128 за это полезное сообщение: | ||
SCrat.ORS (28.02.2017)
| ||
|
#3
|
||||
|
||||
|
Цитата:
Код:
a := b shr i shr i and 3; |
|
#4
|
|||
|
|||
|
Умножение на степень двойки компилятор самостоятельно заменит сдвигом, на скорость это не повлияет, а вот читать код будет проще.
|
| Этот пользователь сказал Спасибо x128 за это полезное сообщение: | ||
M.A.D.M.A.N. (01.03.2017)
| ||
|
#5
|
|||
|
|||
|
И не бойся ставить скобки. Приоритеты орераций в Delphi очень странные.
|
|
#6
|
||||
|
||||
|
Цитата:
|