Я пытаюсь понять некоторый код HiveQL, который использует оператор ~
, а также shiftleft()
, который, как я знаю, является оператором побитового сдвига влево. Я разбил заключительную строку так, что я применяю каждое преобразование шаг за шагом, чтобы попытаться понять каждое. Однако я не могу понять операцию побитового сдвига влево, даже когда я ее изолирую. Я не программист по образованию.
Вот пример. Предположим, у меня есть значение, val
: 768
Может ли кто-нибудь объяснить каждое преобразование с номером 3-5?
Код HiveQL
1. val
2. CAST(val AS int)
3. CAST(val AS int) & shiftleft(1,8)
4. CAST(val AS int) & ~shiftleft(1,8)
5. binary(val)
Результаты
- 768
- 768
- 256
- 512
- [37 36 38]
Также есть способ в HiveQL / SQL преобразовать целое число в двоичное представление со знаком двоичного числа со знаком?