位运算总结
2016-02-28 20:12
225 查看
位运算总结
所有数据在计算机中都是以二进制的形式存储的,两个数值间的位运算就是对他们的二进制形式进行处理。在Java中,位运算有以下这些:1.与运算
与运算的符号为&,两个数字进行与运算,每一位上有0就变为0,都是1则为1,例:1 & 0 = 0; // 全部1和全部0做与运算为全部0
2.或运算
或运算的符号为|,两个数字进行或运算,每一位上有1就变为1,都是0则为0,例:1 | 0 = 1; // 全部1和全部0做或运算为全部1
3.异或运算
异或运算的符号为^,两个数字进行异或运算,每一位上数字相同则为0,不同则为1,例:1 ^ 0 = 1; // 全部1和全部0,每一位都不相同,故结果全为1
异或运算有一个简单的应用是交换两个变量:
int a, b; a = a ^ b; b = a ^ b; a = a ^ b; // a 和 b 已完成交换
4.取反运算
取反运算的符号为~,对某个数字进行取反运算,每一位上数字0变为1,数字1变为0,例:~0 = -1; // 全为1,即-1;
5.左移运算
左移运算的符号为<<,对某个数字进行左移运算,该数字的二进制数就整体向左移动一定位数,右边使用0来补充,例:1 << 1 = 2;
6.带符号右移运算
带符号右移运算的符号为>>,对某个数字进行带符号右移运算,该数字的二进制数就整体向右移动一定位数,左边使用符号位(本来是0就补0;本来是1就补1)来补充,例:2 >> 1 = 2; -2 >> 1 = -1;
7.无符号右移运算
无符号右移运算的符号为>>>,对某个数字进行无符号右移运算,该数字的二进制数就整体向右移动一定位数,左边使用0来补充,例:2 >>> 1 = 2; -2 >>> 1 = 2147483647;
值的注意的是移位运算符只能处理整数运算符,对于char、byte、short类型,在进行移位之前,都将被转换成int类型,移位后的结果也是int类型;移位符号右边的操作数只截取其二进制的后5位(目的是防止因为移位操作而超出int类型的表示范围:2的5次方是32,int类型的最大范围是32位);对long类型进行移位,结果仍然是long类型,移位符号右边的操作符只截取其二进制的后6位
相关文章推荐
- pip用法
- 持续集成之Jenkins
- Android Studio模拟器的问题及解决办法
- 面向对象程序设计第三次作业-Calculator
- 如何用IDE调试MR任务(二)(2016-01)
- Linux内核和用户空间通信的方式(一)— proc文件和mmap共享内存
- ubuntu 下通过apt-get 安装jdk
- bigfile表空间 smallfile表空间
- mmap--最简单的测试程序(用户空间与内核空间数据交换&&用户态和内核态的数据交换用例)
- HDU 5305 Friends(2015 Multi-University Training Contest 2)
- 最新大叶兰冠号表
- node.js发送邮件email
- Java国际化与spring框架国际化的处理
- ASP.NET MVC学习之控制器篇
- 欢迎使用CSDN-markdown编辑器
- ASP.NET MVC学习之路由篇(3)
- Spring——jar包详解
- Linux精讲——usermod命令
- DNS反劫持的几种方式
- Java凝视Annotation