首页 / JAVA / Java中的按位运算
Java中的按位运算
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中的按位运算,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1889字,纯文字阅读大概需要3分钟。
内容图文
![Java中的按位运算](/upload/InfoBanner/zyjiaocheng/842/2fe011d8de7d4ac5be91f6775caf7bd1.jpg)
博客大搬家。
生活博客,https://ylxn.wordpress.com
一、位运算符简介:
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.左移<<。左移右边操作数指定的位数,左边移动的部分补0:
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; 56 System.out.println(String.valueOf(charArray)); // result is 1A2B3e5f6p7P
内容总结
以上是互联网集市为您收集整理的Java中的按位运算全部内容,希望文章能够帮你解决Java中的按位运算所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。