转:http://www.oracle.com.cn/viewthread.php?tid=83181 ORACLE中为什么只有BITAND而没有BITOR, BITXOR,原因是,有了BITAND, 很容易实现BITOR和BITXOR.BITOR(x,y) = (x + y) - BITAND(x, y); BITXOR(x,y) = BITOR(x,y) - BITAND(x,y) = (x + y) - BITAND(x, y) * 2; 实现了位操作| ,^, &, <> ,取一个整数某位的值,为了简明起见,大部分没有判断参数合法性,效率和系统bitand在一个数量级 请各位检查是否有其他错误 create or replace function bitor0(x IN NUMBER,y IN NUMBER) return number is n_result number; begin n_result:=(x + y) - BITAND(x, y); return n_result; end; / create or replace function bitor(x IN NUMBER,y IN NUMBER) return number is begin return (x + y) - BITAND(x, y); end; / create or replace function bitxor0(x IN NUMBER,y IN NUMBER) --faster return number is begin return (x + y) - BITAND(x, y)*2; end; / create or replace function bitxor(x IN NUMBER,y IN NUMBER) --slower return number is begin return (x + y) - BITAND(x, y)- BITAND(x, y); end; / create or replace function bitxor(x IN NUMBER,y IN NUMBER) --fast return number is n_result number; begin n_result:= BITAND(x, y); return (x + y) - n_result- n_result; end; / create or replace function bitnot(x IN NUMBER) --~x=x^0xffff return number is n_result number; begin n_result:= BITAND(x, -1); return (x -1 ) - n_result- n_result; end; / create or replace function bitlmv(x IN NUMBER,y IN NUMBER) return number is begin return x* power(2,y); end; / create or replace function bitrmv(x IN NUMBER,y IN NUMBER) return number is begin return trunc(x/ power(2,y)); end; / create or replace function bitget(x IN NUMBER,y IN NUMBER) return number is n_result number; begin n_result :=power(2,y-1); return bitand(x,n_result)/n_result; end; / create or replace function bitgeta(x IN NUMBER,y IN NUMBER) return number is n_result number; begin n_result :=power(2,y-1); if bitand(x,n_result)>0 then return 1; else return 0; end if; end; /

oracle按位或运算符怎么用,Oracle按位运算符相关推荐

  1. javascript运算符_JavaScript中的按位运算符

    javascript运算符 JavaScript按位运算符 (JavaScript Bitwise Operators) A lot of times you come across some str ...

  2. Java移位运算符详解实例——左移位运算符、带符号的右移位运算符

    移位运算符也针对二进制的"位",它主要包括:左移位运算符(<<).右移位运算符(>>>).带符号的右移位运算符(>>). 1.左移运算符 ...

  3. c语言位运算符读音,C语言六种位运算符

    位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&&quo ...

  4. 运算符之:5、位运算符(7个)

    5.位运算符(7个): &(按位与) | (按位或) ^(按位异或) ~(按位取反) >>(带符号右移) <<(左位移运算符) >>>(无符号右移运算 ...

  5. c语言中的运算符及其含义_按位运算符及其在C语言中与Example一起使用

    c语言中的运算符及其含义 1)&(按位与) (1) & (bitwise AND)) It does AND on every bit of two numbers. The resu ...

  6. C语言中 二进制有哪几个运算符 (举例),C语言中位运算符有哪些

    前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...

  7. c语言负数左移右移_C语言位运算符:与、或、异或、取反,左移和右移

    C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...

  8. Go 学习笔记(5)— 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、取地址和指针运算符

    1. Go 运算符分类 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 1.1 算术运算符 下表列出了所有Go语言的算术运算符.假定 A 值为 10, ...

  9. 位运算符Java与详解_java位运算符详解

    java位运算符详讲 一.位运算符分类    java中位运算符主要有:按位与&.按位或|.按位非~.按位异或^. 在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示.二. ...

  10. c语言提供了6个位运算,C语言基础丨运算符之位运算符(六)

    对于更多紧凑的数据,C 程序能够用独立的位或多个组合在一块儿的位来存储信息.文件访问许可就是一个常见的应用案例.位运算符容许对一个字节或更大的数据单位中独立的位作处理:能够清除.设定,或者倒置任何位或 ...

最新文章

  1. luoguP2479 [SDOI2010]捉迷藏
  2. WebRTC 系列之视频辅流
  3. asp.net 浏览服务器文件
  4. 21. PE结构-PE各个结构的基本概念
  5. 【百度地图API】如何激发手机的高分辨率
  6. Django返回数据给ajax,Django返回JsonResponse并在ajax请求中捕获数据
  7. 经常读书与不读书的人有什么区别?
  8. MySQLdb 1031 Error
  9. OneAPM 技术公开课:北京,北京!
  10. 华为云计算hcip证书有效期_华为认证云计算 V4.0认证
  11. 2022.02.10
  12. 服务器光纤信号灯lan,光纤猫光信号灯不亮怎么办 光纤猫光信号灯不亮解决方法...
  13. UserData使用总结[转载-lanyu]
  14. 机器学习--详解人脸对齐算法SDM-LBF
  15. [SHOI 2008]小约翰的游戏
  16. 5V开关电路应用设计
  17. psv2000注册连接不上服务器,PSV地域服务器须知
  18. 有关Access的压缩和修复数据库功能
  19. 用python实现简单飞行棋
  20. C++模板及模板类(详解)

热门文章

  1. Nvidia League Player:来呀比到天荒地老
  2. php支付问题,如何解决php支付错误的问题
  3. python类和对象的定义_day15_python_类和对象
  4. JAVA核心技术_【读】Java核心技术卷1
  5. mysql中的or_mysql中or和in的效率问题
  6. 深度学习入门首推资料--吴恩达深度学习全程笔记分享
  7. Scrapy分布式原理及Scrapy-Redis源码解析(待完善)
  8. Boot Hill 布特山
  9. 写作就像升级打怪,4个实战技巧让你“写什么都很棒”!
  10. zookeper安装_zookeeper安装单机模式