当前位置:   article > 正文

Hive中的算术运算符:位运算符解释_hive 位运算

hive 位运算

Hive中的位运算符运用不多,可能大部分人也不少很熟悉,其实就是将两个数值转为位相应的二进制,在相应位上进行与、或、反、异或操作:

1. 位与操作: &
语法: A & B
操作类型:所有数值类型
说明:返回A和B按位进行与操作的结果。结果的数值类型等于A的类型和B的类型。
举例:
hive> select 4 & 8 from t_fin_demo;
        0

解释:  4的二进制:0100

             8的二进制:1000

 4和8按位取与操作:0000(最高位0和1取与是0,次高位1和0取与是0,后面两位0和0取与都是0)
2. 位或操作: |
语法: A | B
操作类型:所有数值类型
说明:返回A和B按位进行或操作的结果。结果的数值类型等于A的类型和B的类型的最小父类型(详见数据类型的继承关系)。
举例:
hive> select 4 | 8 from t_fin_demo;
        12

解释:   4的二进制:0100

             8的二进制:1000

 4和8按位取或操作:1100(最高位0和1取与是1,次高位1和0取与是1,后面两位0和0取或都是0)

3. 位异或操作: ^(如果位上a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0)
语法: A ^ B
操作类型:所有数值类型
说明:返回A和B按位进行异或操作的结果。
举例:
hive> select 4 ^ 8 from t_fin_demo;
        12

解释:   4的二进制:0100

             8的二进制:1000

 4和8按位取或操作:1100(最高位0和1取异或是1,次高位1和0取异或是1,后面两位0和0取异或都是0)


4.位取反操作: ~
语法: ~A
操作类型:所有数值类型
说明:返回A按位取反操作的结果。结果的数值类型等于A的类型。
举例:
hive> select ~6 from t_fin_demo;
           -7

解释:   6的二进制:00000110(因为数值较小,假设位8位,实际上一般位64位或者32位)

6按位取反的二进制:11111001(最高位上1,表示上个负数),该二进制都负数计算如下:

11111001减1,得11111000,然后安慰取反00000111,该二进制加-号就上原二进制转化为十进制都值,即-7。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/962676
推荐阅读
相关标签
  

闽ICP备14008679号