关于优先级别问题(急,急) byte a=-128; byte b=(a|127)>0?(byte)(~a>>128):(byte)(~a<<128); System.out.println(b);各位大哥,b的输出结果是多少啊?都给我搞晕了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,这是一个三目运算符。a?b:c意思就是如果a为真,就执行b;为假,执行c.其次括号的优先级最高;~高于>>/<<. 最后,左移运算符<<使指定值的所有位都左移N位.|,按位或运算符“|”,任何一个运算数为1,则结果为1;位运算符都是以二进值运算的。a|127=-1;-1>0为fasle,所以执行(byte)(~a<<128);~a=127;~a<<128=127;结果就是127了。具体怎么运算的,你可以自己换算成二进值慢慢算。 辛苦了,我唯独~a<<128=127;不知道是怎么运算出来的。 希望仔细解释一下。 ~a 是32位也好,8位也好,左移128位啊。都应该是0了阿。怎么出来的127呢? [新人请教!!]关于将汉字转成UNICODE代码的简单程序。。 这个程序怎么改才能正常运行 关于Jtable中ComboBox的问题 JAVA 线程,主程序循环调用多线程,在线等待! java的几个算法--请看 求救;关于网络的问题 关于8859-1的编码问题。 弱弱的问 使用javac出现的问题? 数字的四舍五入问题 scjp的问题2道 请问如何实现这个程序? conf下面的server.xml有什么作用
a?b:c
意思就是如果a为真,就执行b;为假,执行c.
其次括号的优先级最高;
~高于>>/<<.
最后,
左移运算符<<使指定值的所有位都左移N位.
|,按位或运算符“|”,任何一个运算数为1,则结果为1;
位运算符都是以二进值运算的。
a|127=-1;
-1>0为fasle,所以执行(byte)(~a<<128);
~a=127;
~a<<128=127;
结果就是127了。
具体怎么运算的,你可以自己换算成二进值慢慢算。
希望仔细解释一下。
~a 是32位也好,8位也好,左移128位啊。都应该是0了阿。怎么出来的127呢?