首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

问一个关于位运算的有关问题

2012-04-24 
问一个关于位运算的问题如何才能在SQL SERVER里获取某个整型数值的某位是1还是0呢?谢谢[解决办法]SQL code

问一个关于位运算的问题
如何才能在SQL SERVER里获取某个整型数值的某位是1还是0呢?
谢谢


[解决办法]

SQL code
用函数------------------------Create FUNCTION DecToBin(@Dec Int)RETURNS VARCHAR(16)ASbegin declare @BinStr as varchar(20) declare @Mod2 as int  declare @Div2   as int   set @Div2 = @Dec / 2 set @Mod2 = @Dec % 2 set @BinStr=''  while @Div2<>0 begin  if @Mod2=0    set @BinStr = @BinStr + '0'  else    set @BinStr = @BinStr + '1'   set @Dec = @Dec / 2  set @Div2 = @Dec / 2  set @Mod2 = @Dec % 2  end  set @BinStr = @BinStr + '1'  return REVERSE(@BinStr + right('0000000000000000',16-len(@BinStr)))end
[解决办法]
用位运算符,^(位异或)、&(位与)、|(位或)、~(位非)。

例如,想知道20(十进制)这个数字转换为二进制后的第三位是1还是0。 
select case when 20&8 <> 0 then 1 else 0 end

热点排行