T-SQL中的位翻转操作 [英] Bit-flipping operations in T-SQL
本文介绍了T-SQL中的位翻转操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的数据库中有一个位掩码为int的字段.通常我是通过C#代码进行管理的,但是现在我需要使用T-SQL在掩码中进行翻转
I have a bitmasked int field in my database. Usually I manage it through C# code, but now I need to flip a bit in the mask using T-SQL
我如何完成以下任务:
我想翻转的位:1<< 8(256)
The bit I want to flip: 1 << 8 (256)
翻转之前的遮罩值:143
The mask value before I flip: 143
翻转后的遮罩值:399
The mask value after I flip: 399
这可以在没有T-SQL中缺少的位运算符的情况下完成,对吧?
This can be done without the bit operators that's missing in T-SQL, right?
推荐答案
使用XOR:
SELECT value ^ 256
因此,在您的情况下,SELECT 143 ^ 256
实际上将返回399.如果您也要传递指数:
So in your case, SELECT 143 ^ 256
will indeed return 399. If you want to pass in the exponent as well:
SELECT value ^ POWER(2, power)
这篇关于T-SQL中的位翻转操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文