sql - How do I flip a bit using bitwise operator for an int in TSQL? -
i have flags column in sql int.
i need set bit in flag sql statement. corresponding c++ statement looks flags &= ~(unsigned long) (0x10000000).
i tried
update [databases] set flags = flags & ~0x10000000 but
operand data type varbinary invalid '~' operator. then tried see convert function yeild
select flagint = convert(int , 0x10000000) gives me 268435456.
select flagintinvert = ~convert(int , 0x10000000) gives me -268435457
which same signed int
flag 268435456 int ~flag -268435457 int however need unsigned versions
(uint32)flag 268435456 unsigned long ~(uint32)flag 4026531839 unsigned long is there way set flag inversion of 0x10000000?
thanks.
setting inversion of flag can used applying bitwise not operator ~. int in sql server signed int.
from can see want active bit in integer , can done using following statements.
assume having integer value 1, i.e. first bit active.
declare @value int = 1; and want active third bit use or-operator (|) below:
set @value = @value | 4; this render value 5 of int variable.
select @value; if want check if third bit set in use following, filter of other active bits:
select @value & 4 and if want use in comparing use following statement:
if @value & 4 = 4 ... hope helps.
Comments
Post a Comment