2016-01-29 5 views
-3

Я понимаю все побитовые операции (в частности, в Java), кроме побитового сдвига влево. Я расчесывал «стеки» и читал много «объяснений» на разных страницах, но я до сих пор остался неудовлетворенным. Либо это чрезвычайно сложная концепция, либо она не совсем понятна и неясна. Но я знаю, что это должно быть релевантно в некоторой степени, потому что я видел алгоритмы Java (сегодня), которые действительно используют оператор сдвига влево «< <». Так что, если кто-то может сломать это на простом английском языке, это было бы здорово!java побитовый сдвиг влево

+9

Вы понимаете как сдвиги вправо, но не сдвиг влево? – khelwood

+0

@khelwood Хотя я мог предположить, что вы подразумеваете, жизнь лучше, если вы просто скажете, как вы себя чувствуете в первый раз, не говоря в коде ... – Dimpermanence

+2

Я ничего не подразумеваю. Я озадачен вашим утверждением, что вы понимаете все другие побитовые операции (которые логически должны включать правый сдвиг), но вы не понимаете сдвиг влево достаточно даже для того, чтобы задать конкретный вопрос об этом. Я хочу проверить, что вы понимаете правильную смену, потому что это знание упростит объяснение сдвига влево. – khelwood

ответ

0

сдвиг влево на один бит перемещает все биты в значение одно битовую позицию влево. Позиция, свободная с правой стороны, заполняется бит 0, бит, который был оставлен на ферме, теряется.

Это тот же самый эффект, как и умножения значения на 2.

примера (используя только 8 бит для простоты):

original value  10010011 
after shift left 00100110 

Если сдвиг влево на п битов, просто повторить, что п раз (при условии, что n меньше длины слова). Для n больше, чем сдвиг длины слова на n% wordLength.

+0

Разве это не больше, чем это? Не существуют ли определенные условия, когда значение числа может стать неопределенным и т. Д.? – Dimpermanence

+0

Нет, вот и все .. – Henry

+0

Я думаю, что я, возможно, передумал это. Ну что ж! Спасибо, Генри. Это, безусловно, дубликат, но я выбираю ваш ответ как правильный ответ. – Dimpermanence

Смежные вопросы