按位运算符
位运算符在两个表达式之间执行位操作,这两个表达式可以为整型数据类型分类中的任何数据类型。运算符 含义 
&(按位 AND) 按位 AND(两个操作数)。 
|(按位 OR) 按位 OR(两个操作数)。 
^(按位互斥 OR) 按位互斥 OR(两个操作数)。 
位运算符的操作数可以是整型或二进制字符串数据类型分类中的任何数据类型(但 image 数据类型除外),此外,两个操作数不能同时是二进制字符串数据类型分类中的某种数据类型。下表显示所支持的操作数数据类型。

解决方案 »

  1.   

    --十进制转化为二进制数
    CREATE FUNCTION Dec_Bin(@decimal INT)
    RETURNS VARCHAR(20)
    AS
    BEGIN
    DECLARE @bin VARCHAR(20)
    SET @bin=''
    WHILE @decimal!=0
    BEGIN
    SET @bin=CAST(@decimal%2 AS VARCHAR(20))+@bin
    SET @decimal=@decimal/2
    END
    RETURN(@bin)
    ENDSELECT Dec_Bin(9)
      

  2.   

    sorry!上面的应该是SELECT dbo.Dec_Bin(9)--十进制转化为八进制数
    CREATE FUNCTION Dec_Hex(@decimal INT)
    RETURNS VARCHAR(20)
    AS
    BEGIN
    DECLARE @bin VARCHAR(20)
    SET @bin=''
    WHILE @decimal!=0
    BEGIN
    SET @bin=CAST(@decimal%8 AS VARCHAR(20))+@bin
    SET @decimal=@decimal/8
    END
    RETURN(@bin)
    END
    SELECT dbo.Dec_Hex(10)
      

  3.   

    按位运算符位运算符可用于 int、smallint 或 tinyint 数据。~(按位 NOT)运算符还可用于 bit 数据。所有位运算符对一个或多个指定的整型值在 Transact-SQL 语句中转换为二进制表达式时执行计算。例如,~(按位 NOT)运算符将二进制 1 变为 0 而将 0 变为 1。若要检查位运算,请转换或计算十进制数值。
    按位运算符根据对逻辑表达式的检查返回 TRUE 或 FALSE 值。因为支持 TRUE 和 FALSE 常量,所以下面的两个 MDX 表达式现在都是有效的:([Measures].[IsTrue] AND [Measures].[IsFalse]) = 0 
    ([Measures].[IsTrue] AND [Measures].[IsFalse]) = FALSE逻辑运算符要求可取值为逻辑值的表达式。数值表达式在执行逻辑比较前隐式转换为逻辑值。任何取值为 0 或 NULL 的数值表达式视为 FALSE,而任何取值为 0 以外的值的数值表达式视为 TRUE。字符串表达式不进行隐式转换;试图对字符串表达式使用按位运算符将产生错误
    具体看联机帮助。