T-SQL中的位翻转操作 [英] Bit-flipping operations in T-SQL

查看:67
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆