Java运算符
2016-04-07 12:48
302 查看
先认识原码,反码,补码的之间换算
正数:原码,反码,补码和二进制形式相同。
负数:原码和正数的二进制的数值部分相同,符号位是1。
反码和原码的区别是:符号位不变,数值为1变0,0变1。
补码:反码+1
如:5:0000 0101 负数-3:1000 0011
反码:0000 0101 反码:1111 1100
补码:0000 0101 补码:1111 1101
补码和原码的相互转换:
负数的原码=反码-1,再取反。
或者负数的原码=补码取反+1.
运算符(掌握)
(1)算术运算符
+,-,*,/,%,++,--
+:正号,加法,字符串连接符
%:两数相除,得到余数
++,--:
单独使用:在操作数的前后,效果一致。
a++:先进行运算,在自加。--a:先自减在进行运算。
(2)赋值运算符
=,+=,-=,*=,/=,%=
=:把右边赋值给左边。
?=:把左边和右边操作后赋值给左边。
注意:赋值的左边不能是常量。
(3)比较运算符
==,!=,>,>=,<,<=
A:结果肯定是boolean类型。
B:不要把==写出=。
(4)逻辑运算符
&:有false则false
|:有true则true
^:相同为false,不同为true。通过情侣关系来理解。
!:非false则true,非true则false。偶数次不改变以前的真假。
&&:和&的结果一样,但是具有短路效果。左边有false,右边不执行。
||:和|的结果一样,但是具有短路效果。左边有true,右边不执行。
(5)位运算符(了解)
要想操作,就必须把所有的数据转换为二进制。然后操作。
注意:
位&运算符:有0则0。
位|运算符:有1则1。
位^运算符:相同则0,不同则1。
位~运算符:按位取反运算符。也就是1变0,0变1。
<<:把数据向左移动。后边补0。其实相当于乘以2的移动位数次幂。
>>:把数据向右移动。左边补是最高位的值。其实相当于除以2的移动位数次幂。
>>>:把数据向右移动。左边补0。其实相当于除以2的移动位数次幂。
^:对同一个数据异或两次,该数本身不变。
数据交换:假设a,b是已经知道的int类型的变量
A:方式1(掌握 开发用)
int temp = a;
a = b;
b = temp;
B:方式2(掌握 面试用)
左边a,b,a
右边a^b
a = a ^ b;
b = a ^ b;
a = a ^ b;
C:知道就行
a = a + b;
b = a - b;
a = a - b;
D:知道就行
a = (a+b)-(b=a);
(6)三元运算符
格式:
比较表达式?值1:值2;
执行流程:
如果比较表达式是true,结果是值1;
如果比较表达式是false,结果是值2;
大家可以试做几道题目
A:比较两个数是否相同
B:获取两个数中的最大值
C:获取三个数据中的最大值
D:做C题目的时候,还可以练习三元运算符的嵌套。
正数:原码,反码,补码和二进制形式相同。
负数:原码和正数的二进制的数值部分相同,符号位是1。
反码和原码的区别是:符号位不变,数值为1变0,0变1。
补码:反码+1
如:5:0000 0101 负数-3:1000 0011
反码:0000 0101 反码:1111 1100
补码:0000 0101 补码:1111 1101
补码和原码的相互转换:
负数的原码=反码-1,再取反。
或者负数的原码=补码取反+1.
运算符(掌握)
(1)算术运算符
+,-,*,/,%,++,--
+:正号,加法,字符串连接符
%:两数相除,得到余数
++,--:
单独使用:在操作数的前后,效果一致。
a++:先进行运算,在自加。--a:先自减在进行运算。
(2)赋值运算符
=,+=,-=,*=,/=,%=
=:把右边赋值给左边。
?=:把左边和右边操作后赋值给左边。
注意:赋值的左边不能是常量。
(3)比较运算符
==,!=,>,>=,<,<=
A:结果肯定是boolean类型。
B:不要把==写出=。
(4)逻辑运算符
&:有false则false
|:有true则true
^:相同为false,不同为true。通过情侣关系来理解。
!:非false则true,非true则false。偶数次不改变以前的真假。
&&:和&的结果一样,但是具有短路效果。左边有false,右边不执行。
||:和|的结果一样,但是具有短路效果。左边有true,右边不执行。
(5)位运算符(了解)
要想操作,就必须把所有的数据转换为二进制。然后操作。
注意:
位&运算符:有0则0。
位|运算符:有1则1。
位^运算符:相同则0,不同则1。
位~运算符:按位取反运算符。也就是1变0,0变1。
<<:把数据向左移动。后边补0。其实相当于乘以2的移动位数次幂。
>>:把数据向右移动。左边补是最高位的值。其实相当于除以2的移动位数次幂。
>>>:把数据向右移动。左边补0。其实相当于除以2的移动位数次幂。
^:对同一个数据异或两次,该数本身不变。
数据交换:假设a,b是已经知道的int类型的变量
A:方式1(掌握 开发用)
int temp = a;
a = b;
b = temp;
B:方式2(掌握 面试用)
左边a,b,a
右边a^b
a = a ^ b;
b = a ^ b;
a = a ^ b;
C:知道就行
a = a + b;
b = a - b;
a = a - b;
D:知道就行
a = (a+b)-(b=a);
(6)三元运算符
格式:
比较表达式?值1:值2;
执行流程:
如果比较表达式是true,结果是值1;
如果比较表达式是false,结果是值2;
大家可以试做几道题目
A:比较两个数是否相同
B:获取两个数中的最大值
C:获取三个数据中的最大值
D:做C题目的时候,还可以练习三元运算符的嵌套。
相关文章推荐
- Android实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发 旋转屏幕导致Activity重建解决方法
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android开发技巧之ViewStub控件惰性装载
- Android开发常用经典代码段集锦
- 分享10个很棒的学习Android开发的网站
- android开发之横向滚动/竖向滚动的ListView(固定列头)
- Android开发技巧之我的菜单我做主(自定义菜单)
- Java开发必会的Linux命令
- java开发_图片截取工具实现原理
- Windows下使用Apache Cordova开发ANDROID之HelloWorld
- Java基础知识
- java基础(一)
- 怎样学习java,漫谈java学习之路
- 设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar是什么,作用是什么
- Servlet初步认识(一)
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- 学习日志---treemap