SQL函数BIT_AND、BIT_OR、BIT_XOR和BIT_COUNT的最简明详解

一、创建表代码

create table bits(
    id int unsigned primary key auto_increment,
    bin_value bit(8)
);

二、插入二进制数据代码

insert into bits(bin_value) values(b'101'),(b'110');

三、运行结果

mysql> create table bits(
    ->     id int unsigned primary key auto_increment,
    ->     bin_value bit(8)
    -> );
Query OK, 0 rows affected (0.52 sec)

mysql> insert into bits(bin_value) values(b'101'),(b'110');
Query OK, 2 rows affected (0.13 sec)
Records: 2  Duplicates: 0  Warnings: 0
#3.1表情况
mysql> select * from bits;
+----+----------------------+
| id | bin_value            |
+----+----------------------+
|  1 | 0x05                 |
|  2 | 0x06                 |
+----+----------------------+
2 rows in set (0.00 sec)

mysql> select id, bin(bin_value) from bits;
+----+----------------+
| id | bin(bin_value) |
+----+----------------+
|  1 | 101            |
|  2 | 110            |
+----+----------------+
2 rows in set (0.00 sec)
#3.2逻辑与,bit_and()
mysql> select bit_and(bin(bin_value)) from bits;
+-------------------------+
| bit_and(bin(bin_value)) |
+-------------------------+
|                     100 |
+-------------------------+
1 row in set (0.00 sec)
解析:
bit_and():逻辑与
id  bin_value
1   101
2   110
    100     bit_and(),逻辑与的结果
#3.3逻辑或,bit_or()
mysql> select bit_or(bin(bin_value)) from bits;
+------------------------+
| bit_or(bin(bin_value)) |
+------------------------+
|                    111 |
+------------------------+
1 row in set (0.00 sec)
解析:
bit_or():逻辑或
id  bin_value
1   101
2   110
    111     bit_or(),逻辑或的结果
#3.4逻辑异或,bit_xor()
mysql> select bit_xor(bin(bin_value)) from bits;
+-------------------------+
| bit_xor(bin(bin_value)) |
+-------------------------+
|                      11 |
+-------------------------+
1 row in set (0.00 sec)
解析:
bit_xor():逻辑异或
id  bin_value
1   101
2   110
     11     bit_xor():逻辑异或的结果
#bit_count()
mysql> select bit_count(b'101');
+-------------------+
| bit_count(b'101') |
+-------------------+
|                 2 |
+-------------------+
1 row in set (0.00 sec)

mysql> select bit_count(5);
+--------------+
| bit_count(5) |
+--------------+
|            2 |
+--------------+
1 row in set (0.00 sec)
解析:
bit_count()函数用于返回给定输入中有效的位数。活动位可以算作二进制数中的1个数;
5(d)=101(b),所以bit_count(b'101')=bit_count(5)=2


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值