一、位运算符简介:

1.按位与&。如果两个整形数据 a、b 对应位都是1,则结果位才为1,否则为0,(int 最大值0x7fffffff ):

1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 int aAndB = a&b; //aAndB is 12

5 int aAndC = a&c; //aAndC is 0

2.按位或|。如果两个操作数都是0,则结果为0,否则为1:

1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 int aOrB = a|b; //aOrB is 2147483647

5 int aOrC = a|c; //aOrC is 2147483647

3.按位取反~。当操作数的二进制表示相同时,1位为0,0位为1:

1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 a = ~a; //result is -2147483648

5 b = ~b; //result is -13;

6 c = ~c; //result is -1;

4.按位异或^。当两个操作位二进制表示相同时结果为0,否则为1:

1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 c ^= a; //c is 2147483647

5 b ^= 8; //b is 4

6 a ^= a; //a is 0

5.左移<

1 int a = 0x7fffffff;2 int c = 3;3 c <<= 1; //c is 6

4 a <<= 1; //a is -2

6.右移>>。跟左移不同,如果最高位为0,则右移补0。如果最高位为1,则右移补1:

1 int a = 0x7fffffff;2 int a = 0x7fffffff;3 int b = 0;4 int c = 3;5 int d = -2;6 int e = -1;7 c >>= 1; //c is 1

8 a >>= 1; //a is 1073741823

9 b >>= 1; //b is 0

10 d >>= 1; //d is -1

11 e >>=1; //d is -1

7.无符号右移>>>。无论最高位是0还是1,左侧被移空的高位都填入0。

二、利用按位运算符,在很多情况下,可以进行方便的计算。

将大写字母变为小写,将小写字母变为大写( charArray[i]^= 32, 因为在ASCII码中,大写字母与小写字母差了32,因此使用异或运算符,通过与 0 相异或,原字符的二进制形式在其他位保留原有的值,在第 6 位相异或,如果原有位为 0 则变为 1, 原有位为 1 则变为 0):

1 String tempString ="1a2b3E5F6P7p";2 char [] charArray =tempString.toCharArray();3 for(int i = 0; i < charArray.length; i++)4   if(Character.isLetter(charArray[i])) charArray[i] ^= 32;5 System.out.println(String.valueOf(charArray)); //result is 1A2B3e5f6p7P

java 按位_Java中的按位运算相关推荐

  1. java math 保留_java怎么保留两位小数?具体方法是什么?

    小伙伴们在平时写程序的时,有没有需要在界面或者页面上保留小数点后两位的数据时候呢?今天,小编就来为大家讲一讲如何在Java中保留小数点后两位. 一.使用java.math.BigDecimal /** ...

  2. Linux下的32位C程序,linux系统c语言生成.so文件,生成64位可执行文件,在64位系统中运行32位的可执行文件...

    1.linux 系统c语言生成.o文件,---->gcc -m64 -c -fPIC test.c -o test.o 2.linux 系统c语言生成.so文件,----->gcc -sh ...

  3. 创世贴|怎么在64或32位系统中运行16位程序《大富翁》

    创世贴|怎么在64或32位系统中运行16位程序<大富翁> 绪言 大家好!纵观游戏行业的发展,可谓是进步迅猛.百花齐放.游戏是每个人在学习.工作之余休闲娱乐的良药.玩游戏的人从皇宫贵族到社会 ...

  4. java string 后几位_java中String占几个位元组

    java中String占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中String占几个位元组 J ...

  5. java中保留小数位_Java中保留两位小数的方法

    Java中保留4位小数的方法: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Number ...

  6. java负数右移_Java中负数的右移

    我们知道,在Java中常用的位移运算有三种,分别是:<>(带符号右移)和>>>(无符号右移). 这一次,我们来看一下其中的带符号右移运算符>>在负数计算时的效 ...

  7. java 内部变量_java 中的内置数据类型

    1,  基本数据类型 Java是强类型语言, 对于每一种数据都定义了类型,基本数据类型分为数值型,字符型,布尔型.数值型又分为了整型和浮点型. 整型又分为byte, int, short long. ...

  8. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  9. java 是什么_java中是什么意思?

    java中>>>是什么意思? >>>是java中的移位运算符,表示无符号右移. 移位运算符面向的运算对象也是二进制的"位".可单独用它们处理整数 ...

最新文章

  1. 关于pyecharts 地图显示添加数据的问题
  2. 开发者必读:计算机科学中的线性代数(附论文)
  3. 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  4. java web中炸包,Javaweb出来炸到---HTML
  5. 服务器系统健康值计算算法,身体健康指数计算方法
  6. python 打包发布网站_Python代码的打包与发布
  7. sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别
  8. 移动开发学习记录点滴-动态增加列表行数据
  9. python type error是什么意思_Python-TypeError:“ int”对象不可调用
  10. 米兔点读笔点读包_怎么用小达人点读笔点读斑马英语随材?
  11. 王思聪旗下公司破产拍卖:13.8万成交、溢价超100倍
  12. 第八周总结与软考前任务安排
  13. [回顾]事件对象——event
  14. 大型网站架构系列:负载均衡详解(4)
  15. 聚合直播,直播接口的使用
  16. 2023东北大学计算机考研信息汇总
  17. 使用apache的ftpserver搭建ftp服务器
  18. Gym 101669J SEERC 2017 Cunning Friends
  19. 计算机变成英语,原来是中文的电脑电脑系统变成英文了
  20. 迅雷某页面存在sql注入漏洞

热门文章

  1. git commit提交代码时提示LF与CRLF转换问题 error
  2. 获取redis中以某些字符串为前缀的KEY列表
  3. C语言 main 函数参数 main(int argc, char *argv[]) - C语言零基础入门教程
  4. BugkuCTF-MISC题random color
  5. BugkuCTF-Reverse题mobile2(gctf)
  6. mysql ssh错误_通过SSH隧道连接时,MySQL访问被拒绝错误
  7. 广播 消息 没有服务器,服务器节点消息广播
  8. 吃PHP小孩智力好,这7种鱼千万不能给孩子吃,会影响孩子的智力!
  9. 继续教育计算机组成原理a试卷,计算机组成原理模拟试题及答案西工大.doc
  10. PHP的html实现xpath解析,php用xpath解析html的代码实例讲解