本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E5%BC%80%E5%8F%91%...

YashanDB提供如下位运算符:

运算符操作数含义NULL参与运算
&二元按位与:1 & 1 = 1

其他为0

| 结果为NULL |
| | | 二元 | 按位或:0 | 0 = 0

其他为1

| 结果为NULL |
| ^ | 二元 | 按位异或:0 ^ 0 = 0 或 1 ^ 1 = 0

其他为1

| 结果为NULL |

YashanDB中,可实现位运算的方式有:

其中,&与BITAND同义,|与BITOR同义,^与BITXOR同义。

参与运算的两个数据,按二进制展开后,由低到高每bit进行位运算,并以BIGINT类型输出运算结果。

位运算最多支持到64位。

小数参与运算:FLOOR取整后,参与位运算。

# 运算优先级

从高到低的运算优先级为:^>&>|。

可以使用双括号()来调整想达到的运算优先级。

# 数据类型

如下数据类型可能会参与到位运算中:

  • 数值型(除FLOAT、DOUBLE外)
  • 字符型

在进行二元位运算时,YashanDB将通过隐式数据转换,将参与运算的数据类型全部统一到BIGINT类型,再进行位运算。

下图列示具体统一规则:(行列标题格为参与位运算的数据类型;内容单元格为统一后的数据类型;–表示不支持两种数据类型参与位运算)

数据类型TINYINTSMALLINTINTBIGINTNUMBER字符型BIT
TINYINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT
SMALLINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT
INTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT
BIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT
NUMBERBIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT
字符型BIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT
BITBIGINTBIGINTBIGINTBIGINTBIGINTBIGINTBIGINT

YashanDB
1 声望0 粉丝

崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的...