Java基础 位运算
来源:互联网 发布:mac电脑怎么装exe软件 编辑:程序博客网 时间:2024/06/09 13:12
1.按位与运算符(&)--主要讲述正数,负数只讲一例
5&6 =?
先转换成二进制数:
5 = 0000 0101;
6 = 0000 0110;
按位与是:各位数都为1就取1;不然就取0;所以结果是: 0000 0100 =4;
负数要先取它的补码:例如:5& -6 =?
5 = 0000 0101 ;(原码、补码、反码都为它)
-6原码:1000 0110;
-6反码:1111 1001;
-6补码:1111 1010;(反码加1) 5& -6 = 0000 0000 =0;
2.按位或运算符(|)
5|6 =?
先转换成2进制数
5= 0000 0101
6= 0000 0110
按位或是:只要参与运算数位有一个为1,这个位置就取1;所以5|6=0000 0111 =7;
3.取反运算符(~)
~5 =?
5 = 0000 0101;
~5 =1111 1010;(因为在计算机中负数是按补码形式存储,所以这是个补码,要算出它的原码)
反码 =补码-1 = 1111 1001;
原码 = 反码除最高位取反 = 1000 0110 =-6;
所以~5 = -6;
4.异或运算符(^ )
5^6:参与运算数位相同则取0,不同则取1
5 = 0000 0101;
6 = 0000 0110 ;
结果:0000 0011 =3;
5. 左移运算符(<<)
a<<b即a向左移b位,右边补0,左边的2进制位丢弃;
5<<2 : 5= 0000 0101左移2位得 0001 0100 = 20; 一般结果是:a<<b = a*(2^b),即5<<2 =5* 2^2 =5*4= 20
6.右移运算符(>>)
a>>b 即a向右移b位,正数左边补0,负数左边补1,右边丢弃;
结果 = a/(2^b)去整数;
7.无符号右移运算符(>>>)
a>>>b,a向右移b位,左边空出的位用0来填充,移出右边的被丢弃
- java 位运算基础
- Java基础: 位运算 << >> >>>
- Java基础 位运算
- java基础 位运算符 >> <<
- java之位运算基础
- java 位运算与运算基础
- java基础:位运算用法测试代码
- java基础之,位运算符>>
- java基础:位运算的魅力
- java基础之位运算符
- 位运算符--Java基础013
- Java基础-位运算符回顾
- java基础_位运算符
- java基础之位运算符
- 24.java语言基础-位运算符
- Java基础——位运算符
- Java基础之位运算符
- java基础--数组Arrays、递归、移位运算、位运算符
- oracle-java7-installer安装java失败之后的处理
- Redis主从复制和集群配置
- ViewPager实现引导页
- Android基础(一)
- XSS 跨域脚本攻击解决方案
- Java基础 位运算
- mybatis调用存储过程
- 在vs2013上简单使用cocosstudio导出的csb文件
- 关于malloc(0)的返回值问题--这两天的总结与实践篇
- 事件调度
- C++11 forward完美转发
- SVN 取消对代码的修改
- UTF-8编码规则
- C# 简单发邮件方法