oracle funcdtion_bitand

wisdomone1發表於2012-12-28

bitand

  bitand
  返回兩個數值型數值在按位進行 AND 運算後的結果。
  語法
  BITAND(nExpression1, nExpression2)
  引數
  nExpression1, nExpression2
  指定按位進行 AND 運算的兩個數值。如果 nExpression1 和 nExpression2 為非整數型,那麼它們在按位進行 AND 運算之前轉換為整數。
  返回值型別
  數值型
  說明
  BITAND( ) 將 nExpression1 的每一位同 nExpression2 的相應位進行比較。如果 nExpression1 和 nExpression2 的位都是 1,相應的結果位就是 1;否則相應的結果位是 0。
  下表列出對 nExpression1 和 nExpression2 按位進行 AND 運算的結果:
  SELECT BITAND(6,3) FROM DUAL;
  BITAND(6,3)
  ---------------
  2
  例如:
  select bitand(6,7) from dual;
  6的二進位制是0110;7是0111.邏輯與是將各二進位制位一一進行與操作,其中第二和第三位相同並且都是1,諸位邏輯與後結果為0110
  故,返回結果為6。
 
 
測試如下:
 
SQL> select bitand(1.2,2.8) from dual;
 
BITAND(1.2,2.8)
---------------
              0
 
SQL> select bitand(1.9,2.9) from dual;
 
BITAND(1.9,2.9)
---------------
              0
 
SQL> select bitand(2.9,2.9) from dual;
 
BITAND(2.9,2.9)
---------------
              2
 
SQL> select bitand(0.9,0.9) from dual;
 
BITAND(0.9,0.9)
---------------
              0
 
SQL> select bitand(0.9,1.9) from dual;
 
BITAND(0.9,1.9)
---------------
              0
 
SQL> select bitand(1.9,0.9) from dual;
 
BITAND(1.9,0.9)
---------------
              0
 
小結:
      1,兩個運算子,各轉化為二進位制,然後一一對應,以二進位制的and與進行運算
      然後把最終產生的結果集由二進位制轉化為越來十進位制
      2,如兩個表示式為整數,直接轉化為二進位制
      3,如兩個表達不為整數,直接截斷為

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-751792/,如需轉載,請註明出處,否則將追究法律責任。

相關文章