暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【AntDB数据库 SQL语法专栏】——位运算符

北陌 2024-05-28
72

位运算符

位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示:

pqp & qp | q
0000
0101
1111
1001

假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

A = 0011 1100

B = 0000 1101

-----------------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

下表显示了 AntDB 支持的位运算符。假设变量 A 的值为 60,变量 B 的值为 13,则:

运算符描述运算规则实例
&按位与操作,按二进制位进行"与"运算。0&0=0;
0&1=0;
1&0=0;
1&1=1;
(A & B) 将得到 12,即为 0000 1100
|按位或运算符,按二进制位进行"或"运算。0|0=0;
0|1=1;
1|0=1;
1|1=1;
(A | B) 将得到 61,即为 0011 1101
#异或运算符,按二进制位进行"异或"运算。0#0=0;
0#1=1;
1#0=1;
1#1=0;
(A # B) 将得到 49,即为 0011 0001
~取反运算符,按二进制位进行"取反"运算。1=0;<br/>0=1;(~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。
<<二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。左边的二进制位丢弃,右边补0A << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。A >> 2 将得到 15,即为 0000 1111


实例

antdb=# select 60 | 13;
 ?column?
----------
       61
(1 row)

antdb=# select 60 & 13;
 ?column?
----------
       12
(1 row)

antdb=#  select  (~60);
 ?column?
----------
      -61
(1 row)

antdb=# select  (60 << 2);
 ?column?
----------
      240
(1 row)

antdb=# select  (60 >> 2);
 ?column?
----------
       15
(1 row)

antdb=#  select 60 # 13;
 ?column?
----------
       49
(1 row) 


关于亚信安慧AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论