黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)
位运算符
左移和右移
左移
- 左移越移越大。
- 往左移几位就相当于这个数乘于2的几次方
- 3 << 2 ——> 3 * 2^2 = 3 * 4 = 12
- 3 << 3 ——> 3 * 2^3 = 3 * 8 = 24
右移
右移越移越小
往右移几位就相当于这个数除于2的几次方
- 6 >> 1 ——> 6 / 2^1 = 6 / 2 = 3
> > 右移最高位是由最高位值而定,最高为是0就补0,是1就补1
比如 -6 的二进制是
1111—1111 1111—1111 1111—1111 1111—1001 = -6
则 往右移2结果是
>> 1111—1111 1111—1111 1111—1111 1111—1110
> > > 无论最高位是什么,右移后都补0
- >>> 0011—1111 1111—1111 1111—1111 1111—1110
与 &— 或| — 异或
| & : |
|---|
| 6 & 3 = 2; |
| 110 |
| & 011 同真(1)异假(0) |
| 010 = 2; |
| | : |
| 6 | 5 = 7; |
| 110 |
| | 101 同真或真假为真(1) 同假为假(0) |
代码示范
class Test{
public static void main(String[] args){
System.out.println("6与5的值是:" + 6 & 3);
System.out.println(("6或5的值是:")6 | 5);
System.out.println(("6异或5的值是:")6 ^ 5);
}
}
/*
输出打印结果:
6与5的值是:2
6或5的值是:7
6异或5的值是:3
*/
位运算符细节
| 细节 |
|---|
| << 空位补0,被移除的高位丢弃,空缺位补0 |
| >> 被移位的二进制最高位是0,右移后,空位补0 , 最高位是1,空位补1 |
| >>> 被移位的二进制最高位是0或者1,最高位都补0 |
| & 二进制位进行&运算,只有1&1时结果是1,否则是0; |
| | 二进制位进行 | 运算,只有0 | 0时结果是0,否则1; |
黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)的更多相关文章
- 黑马程序员_毕向东_Java基础视频教程——三元运算符(随笔)
三元运算符:三个元素参与运算的符号 [三元运算符:简略版的 if(){} else() {}语句] class Text { public static void main(String[] args ...
- 黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)
位运算(练习) 最有效率的方式算出 2乘以 8等于几 2 << 3 = 2 * 2^3 = 2 * 8 = 16 对于两个整数变量的值进行互换(不需要第三方变量) class Test { ...
- 黑马程序员_毕向东_Java基础视频教程——逻辑运算符(随笔)
逻辑运算符 逻辑运算符用于连接 boolean 型的表达式 & : 只要两边都是 boolean 表达结果,有一个为 false ,则结果就是 false 只要两边都为 true 则结果就为 ...
- 黑马程序员_毕向东_Java基础视频教程——赋值(随笔)
赋值 class Test{ public static void main(String[] args) { int i = 3; // += -= *= /= %= 它们凑一块成为一个运算符 x ...
- 黑马程序员_毕向东_Java基础视频教程——转义字符(随笔)
转义字符 转义字符 通过 \ 来转变后面的字母或符号的含义 \n :换行 \b :退格.相当于 backspace \r : 相当于回车键. Windows系统中,回车是由两个字符来表示 \r \n. ...
- 黑马程序员_毕向东_Java基础视频教程——算术运算符小点(随笔)
算术运算符小点 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System ...
- 黑马程序员_毕向东_Java基础视频教程——变量(随笔)
变量 变量 就是将不确定的数据进行存储.也就是需要在内存中开辟一块空间. 内存就是一块运算区域.内存越大.内存中装的数位就越多.运算就越快 ============================== ...
- 黑马程序员_毕向东_Java基础视频教程——类型转换(随笔)
类型转换 class Test{ public static void main(String[] args) { byte b = 3; // b = b + 2; /* Test.java:5: ...
- 黑马程序员_毕向东_Java基础视频教程——常量(随笔)
常量 常量表示不能被改变的数值. Java常量的分类 整型常量.所有整数 小数常量.所有小数 布尔型常量.特殊只有两个值:true.false. 字符常量.将一个数字字母或者符号用单引号(' ')标识 ...
随机推荐
- 宝塔利用git+ webhooks 实现git更新远程同步Linux服务器
参考: https://blog.csdn.net/alipea/article/details/83858177 https://www.bt.cn/bbs/thread-5348-1-1.html ...
- php--static用法
static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”. 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“ ...
- tp5 -- join注意事项
使用数据库关联查询的时候,有时候会避免不了两个表格字段名称都一样的尴尬, 这时候管理查询出来的只有其中一个表格字段名称的数据,因为在相同字段名称的情况下,数据会自动覆盖. 这时候,我们只需要给其中一个 ...
- 一,连接Oracle 一
连接Oracle数据库方法: 一,使用sqlplus连接 二,使用第三方软件连接 sqlplus sqlplus 工具简介 (1).概述:sqlplus是在Linux下操作oracle的工具 (2). ...
- QT 无法抓住异常
出处:https://stackoverflow.com/questions/40980171/qt5core-dll-crashing I've found that enabling /EHa ( ...
- 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)
1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...
- android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。
2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec ...
- layui模块化加载Echarts图表v4.2.1
layui.use(['jquery','echarts'], function () { var $ = layui.$; //记得这是dom对象不是JQ对象,需要转换 echarts = layu ...
- 苹果系统通过brew安装sshpass
默认使用brew install sshpass会出现Warning: MD5 support is deprecated and will be removedin a future version ...
- Linux监听磁盘使用情况
前阵子服务器磁盘写满了,导致项目出了很多奇怪的问题,比如文件上传不了(这个很好理解),还有登录时验证码无法加载(现在依旧不知道原因,项目的验证码图片是只在内存中生成的BufferedImage对象,不 ...