Oracle中神奇的BITAND函数


两个参数,要默认转化为数值类型整数进行二进制按位与(AND)运算(逻辑上与代表乘,或代表加,,与门,或门,联想到串联和并联,伟大的编码的原理,相当有趣),结果再转化为二进制-10进制,TOAD文档举例了一个数据库的参数,然后分别和2的0次幂, 1次幂,进行运算,

其中结果是1, 2, 4 代表不同的含义,这样,再配合DECODE就实现了强大的一个栏位能表明多种意思。

  详细参见TOAD 文档和下文:

  返回两个数值型数值在按位进行 AND 运算后的结果。

  语法

  BITAND(nExpression1, nExpression2)

  参数

  nExpression1, nExpression2

  指定按位进行 AND 运算的两个数值。如果 nExpression1 和 nExpression2 为非整数型,那么它们在按位进行 AND 运算之前转换为整数。

  返回值类型

  数值型

  说明

  BITAND( ) 将 nExpression1 的每一位同 nExpression2 的相应位进行比较。如果 nExpression1 和 nExpression2 的位都是 1,相应的结果位就是 1;否则相应的结果位是 0。

  下表列出对 nExpression1 和 nExpression2 按位进行 AND 运算的结果:

  nExpression1 位 nExpression2 位 结果位

  0 0 0

  0 1 0

  1 1 1

  1 0 0

  bitand( ) 函数示例

  x = 5 && 二进制为 0101

  y = 6 && 二进制为 0110

  ? bitand(x,y) && 返回值 4,二进制为 0100

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3