恶补java基础 位运算符
以前不知道在哪看过别人写博客里的一句话 “越学的深入觉得自己会的东西越少”。最近研究了一下java的基础算法 hash表
被一些位运算符搞的头都大了 决心花一些时间研究一下以前一直觉得没用的东西!
位移动运算符:
<<表示左移, 左移一位表示原来的值乘2.
例如:3 <<2(3为int型)
1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,
2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,
3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,
转换为十进制是12。
同理,>>表示右移. 右移一位表示除2.
java中的>>与>>>的用法 以及区别
">>"是带符号右移,高位是1则补1,是零则补0;">>>"是无符号右移,无论是0是1,都是补0;
如1010 0000 0000 0000 0000 0000 0000 0000 >>4
则为1111 1010 0000 0000 0000 0000 0000 0000;
1010 0000 0000 0000 0000 0000 0000 0000 >>>4
则为0000 1010 0000 0000 0000 0000 0000 0000;
位运算:
位运算符包括: 与(&)、非(~)、或(|)、异或(^)
&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
http://www.cnblogs.com/highriver/archive/2011/08/15/2139600.html
最新文章
- Mysql操作语句
- ORACLE的SQL JOIN方式小结
- Source Insight设置
- 【230】4T硬盘如何完全利用(GPT)
- Silverlight调用本机exe程序
- html部分---表单、iframe、frameset及其他字符的用法(以及name、id、value的作用与区别);
- HDU 5319 Painter (模拟)
- UVA10199- Tourist Guide(割点)
- 使用GDB调试Android NDK native(C/C++)程序-转
- eclipse代码恢复(开发程序代码恢复)
- 如何在本地编译Fabric Code
- Stackoverflow热门问题
- PCIe link up bug 分析
- oracle 任务备份
- mongodb副本集与分片结合
- Web Scraper爬取就是这么简单
- 一步一步详解ID3和C4.5的C++实现
- ajax入门简述
- Windows IOT 开发入门(硬件入门)
- jquery datatables api
热门文章
- 如何解决普通用户使用sudo找不到命令
- HDUOJ --2523
- O(n)复杂度求没有出现的数字(leetcode448)
- 运行shell出错: 没有那个文件或目录
- jQuery+ajax中,让window.open不被拦截(转)
- 【jQuery】清空表单内容
- java程序员学习路线图 java程序员进阶路线
- Python学习笔记014——迭代工具函数 内置函数zip()
- bootstrap 多元素共用 popover
- Aixs2 使用总结,持续更新中 ...