j2me中的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:25:45
1.j2me中&是什么意思?
2. if((keyStates & GameCanvas.DOWN_PRESSED) != 0 ){},这个if语句中是什么意思,希望解释清楚一点,谢谢啦!!!
不好意思,我就这么多的分,望谅解,朋友们!!!
三位说的都很对,我都不知道怎么分分了,不过还是要多谢大家的帮忙,兄弟们谅解啊,谢谢啦!!!!!!!!!!

这么说吧
& 是位运算符 双目运算符 假如: int a=5 二进制表示0000 0101 int b=9 二进制表示 0000 1001 此时int c=a&b; 此时c=1
二进制表示0000 0001 a和b 相对应位相与 ( 同时为1时为1 其余情况为0)
相当于&&逻辑运算符 boolean m,n; m&&n的结果为 两者同时为真时为true 其余情况为false
这两者的差别在于 前者&无短路效应 后者&&(同理||)有短路效应

短路效应即 拿m 和 n来说 m&&n时 若m为真 继续往下执行 只有n为真 总结果才为真 若m为假 则不继续往下判断(即产生短路) 所以不判断n (因为知道m为假就能知道总体的结果,效率来说相对高点)故总结果为假
举个例子:boolean m=true,n=false;
if(m&&(n=!n))//逻辑运算符&&
{}
此时m为true 程序执行执行(n=!n)操作 故n为true
boolean m=true,n=false;
if(m&(n=!n))//位运算符&
{}
此时m为true 程序执行执行(n=!n)操作 故n为true

若 boolean m=false,n=false;
if(m&&(n=!n))//))//逻辑运算符&&
{}
此时m为false 程序不执行(n=!n)操作,即产生短路效应 故n为false

boolean m=false,n=false;
if(m&(n=!n))//位运算符&
{}

此时m为false 因为无短路效应,故程序执行(n=!n)操作 即n为true

就是与运算呀

以二进制数据来处理 如 6 & 4 实际是 110 & 100 结果是 100 即4 (那些100啊 110啊 都是二进制的)

keyS