大数据学习--day03(运算符、流程控制语句)
2024-08-23 05:18:25
运算符、流程控制语句
自增自减容易出错的地方:
扩展的赋值运算符
a+=b 等同于 a = a+b;
扩展的赋值运算符 隐含了一个类型的强制转换
& && 有何区别
& : 当左边的表达式结果为false时 , 仍旧判断执行右边的表达式
&& :当左边的表达式结果为false时 , 不去判断执行右边的表达式
| || 有何不同之处
| : 当 左边的表达式结果为 true 时 , 仍然会对右边的表达式进行 执行判断
||: 当 左边的表达式结果为 true 时 , 不会会对右边的表达式进行 执行判断
三目运算符:
位运算符
只能操作整型
使用位运算符时 会把 byte char short 先自动提升到 int
<< 左移
x << y 等价于 x * 2^y
>> 右移
x >> y 等价于 x / 2^y
例如
5 >> 1 == 5 / 2^1
0 0000101 5
0 0000010 右移一位 前面补的是符号位 -> 2
0 0000001 右移二位 前面补的是符号位 -> 1
负数右移
1 0000101 -5 补码
1 0000100 反码
1 1111011 原码
1 1111101 原码右移一位 补符号位
反码1 0000010
补码1 0000011 == -3
1 1111110 原码右移二位 补符号位
反码1 0000001
补码1 0000010 == -2
>>> 无符号右移
之前的 >> , 正数负数补的是符号位 , 无符号右移补 0
>>> >> 如果操作的正数 , 那么完全一样 , 操作的负数 差距很大
-5 >>> 1 == 2147483645
1 24个0 0000101 -5补码
1 24个0 0000100 -5反码
1 24个1 1111011 -5原码
0 24个1 1111101 右移一位 补0
得出结果 2147483645
if语句同c#不讲了
最新文章
- 7.Android常用第三方支付
- [翻译] WCF运行时架构
- checkbox与说明文字无法对齐的问题
- Linq之Lambda表达式初步认识
- IOS 时间 日历 处理集合
- LeetCode 45
- html5在手机端关于 map area中的自适应
- 海美迪Q5智能机顶盒的蓝牙功能
- HTTP meta 设置方法
- Freemarker常用技巧(二)
- 软件开发常用Linux命令
- wpf 线程与界面线程
- HDU1062:Text Reverse
- 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(五)
- php中curl远程调用获取数据
- Spring Cloud学习笔记-005
- Java数据结构和算法 - 二叉树
- php的Memcached模块扩展
- 微信公众号开发调用自带地图 不显示(openLocation)
- Docker GitHub 网站中 Readme.md 以技术者的角度翻译
热门文章
- pt-deadlock-logger使用
- eclipse tomcat jdk 版本引用
- 加密算法IV的作用
- skype for business server 2015 报错“不可用:试图检查架构状态时发生故障,请确保能够访问Active Direcotry”
- 二阶SQL注入理解与体会
- json转换为tree对象(递归)
- 【2D游戏引擎】WIP反思
- Lovable eccentric
- copy ";xxxxx\xx.dll xxxxxxx\ ” 已退出,代码为1 错误解决方法
- Lua脚本认知小结