Ownsight

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 507|回复: 0
打印 上一主题 下一主题

SQLITE 位运算 测试

[复制链接]

803

主题

903

帖子

3201

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3201
跳转到指定楼层
楼主
发表于 2017-10-26 08:54:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SQLITE本身是弱类型的数据库,在text中也是可以写入数字,直接写入没有问题,在TEXT类型下直接运行位运算,结果正常


引用:http://www.runoob.com/sqlite/sqlite-operators.htmlSQLite 位运算符
位运算符作用于位,并逐位执行操作。真值表 & 和 | 如下:
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??= 1100 0011
下表中列出了 SQLite 语言支持的位运算符。假设变量 A=60,变量 B=13,则:
运算符描述实例
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。(A & B) 将得到 12,即为 0000 1100
|如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。(A | B) 将得到 61,即为 0011 1101
~二进制补码运算符是一元运算符,具有"翻转"位效应,即0变成1,1变成0。(~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。A << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。A >> 2 将得到 15,即为 0000 1111
实例
下面的实例演示了 SQLite 位运算符的用法:
sqlite> .mode linesqlite> select 60 | 13;60 | 13 = 61sqlite> select 60 & 13;60 & 13 = 12sqlite> select??60 ^ 13;10 * 20 = 200sqlite>??select??(~60);(~60) = -61sqlite>??select??(60 << 2);(60 << 2) = 240sqlite>??select??(60 >> 2);(60 >> 2) = 15



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表