黑马程序员技术交流社区

标题: 我的总结之运算符 [打印本页]

作者: kuailedaojia    时间: 2016-2-19 15:35
标题: 我的总结之运算符
赋值运算符(=,+=,-=,*=,/=,%=)在执行+=语句时,编译器在编译的时候,默认进行了强制类型转换,也就是将int类型的数据转换成short类型的数据。
算术运算符 + 加或者连接符 % 取余,符号看左边 (类型名)表达式 强制转换
比较运算符(>,<,==,!=,>=,<=)结果为boolean,instanceof检查是否是类的对象
逻辑运算符用于连接两个boolean类型的表达式 & 与 | 或 ! 非 && AND(短路,效率高) || OR(短路,效率高) (!>&&>||) ^ 异或,不同为真。
位运算符 <<左移几位乘2的几次方;>>右移除2补与最高位相同的1或0;>>>无符号右移,被移位二进制最高位无论是1或0空缺位补0;~反码;
&与,|或,^异或,一个数异或同一个数两次,结果还是这个数(加密)。
转义符  \t 输出8个空格就相当于一个制表位Tab,\n换行,\b退格相当于Backspace,\r按下回车window系统中有两种,\”\”输出“”
优先级:赋值》算术》关系》逻辑
运算符 一元 i++ i--//先使用后对自身加一 int i=1;int b=i++;b=1,i=2; ++i --i//先对自身加一再使用即都为二 b+=a;<=>b=b+a;现加后赋值;二元 + - * / %;三元 ?//int a=100;int c=a>100?200:500;c=500


作者: Jessrabbit    时间: 2016-2-19 16:12
赋值运算符(=,+=,-=,*=,/=,%=)在执行+=语句时,编译器在编译的时候,默认进行了强制类型转换,也就是将int类型的数据转换成short类型的数据。这句不懂,为什么是int转short?
作者: kuailedaojia    时间: 2016-2-19 16:21
Jessrabbit 发表于 2016-2-19 16:12
赋值运算符(=,+=,-=,*=,/=,%=)在执行+=语句时,编译器在编译的时候,默认进行了强制类型转换,也就是 ...

int和short都是整数类型,short是2字节有符号整数的补码,int跟它类似但是却是4字节,也就是说把4字节强制转换成2字节了!
作者: Jessrabbit    时间: 2016-2-19 16:26
kuailedaojia 发表于 2016-2-19 16:21
int和short都是整数类型,short是2字节有符号整数的补码,int跟它类似但是却是4字节,也就是说把4字节强 ...

那超过了short范围的数字参与运算时呢?   还会不会强制转换?
作者: kuailedaojia    时间: 2016-2-19 16:33
Jessrabbit 发表于 2016-2-19 16:26
那超过了short范围的数字参与运算时呢?   还会不会强制转换?

超过的话就会出现错误,如果仍需要算int型,最好不用缩写!
作者: ruzi1    时间: 2016-2-19 17:39
你写的还行,就是再具体点就好了!
作者: kuailedaojia    时间: 2016-2-19 17:40
ruzi1 发表于 2016-2-19 17:39
你写的还行,就是再具体点就好了!

好的,下回注意!
作者: zzh111    时间: 2016-2-19 17:52
Jessrabbit 发表于 2016-2-19 16:12
赋值运算符(=,+=,-=,*=,/=,%=)在执行+=语句时,编译器在编译的时候,默认进行了强制类型转换,也就是 ...

不是int转short,而是short转int。因为整形(byte、short、int、long)参加运算时,都会转化为int型的数据类型,float、double运算时会转化为double。
如:short a = 2;   a = a + 1;    会报错
      short b = 2;   b += 1;    不会报错,因为 += 会默认强制转换。
作者: 苍山雪    时间: 2016-2-19 18:05
受教了,膜拜大神
作者: Jessrabbit    时间: 2016-2-20 08:01
zzh111 发表于 2016-2-19 17:52
不是int转short,而是short转int。因为整形(byte、short、int、long)参加运算时,都会转化为int型的数 ...

懂了~!  感谢大神
作者: hainan080697    时间: 2016-2-20 10:52
很好啊,正在努力学习
作者: ~sunny    时间: 2016-2-20 20:16
我为了金黑马学习,必须回复




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2