代码: public void removeMode(int mode)
{
this.mode &= ~mode;
}
这段代码中的this.mode &= ~mode;怎么解释,
不才,没有看懂,求助
{
this.mode &= ~mode;
}
这段代码中的this.mode &= ~mode;怎么解释,
不才,没有看懂,求助
解决方案 »
- 为什么不能用for循环。单个使用却可以
- 请教为什么包含java内部类的方法,它的参数必需为final的问题?
- 怎么找不到.class文件呢???
- JDialog中modal设为true,如何显示
- JBuilder5/6和JBuilder9的速度比较怎么样?
- 一个关于引用及类与类关系的问题请教!
- 那里可以下载到中文语音输入软件(如 ibm的语音输入系统)!!!
- Collection List Set Map 是怎样的关系?有什么用处?哥哥请回答!
- 用java做了个系统,速度可以大大提高。
- apache vfs 监视文件变化
- 改变JTabbedPane的选项卡的颜色
- 求一简单算法,如何将A转成1,B转成2,C转成3,AA转成27,AB转成28
与this.mode进行与操作,在FF FF FF 11001010中是1的会保持不变,是0的会被置0,所以结果将this.mode的1,3,5,6位变成了0
this.mode=(this.mode) & (~mode)
就是意味返回的结果总是000 00 0000000,
是否?
int mode1 是 1;
int mode2 是 10;
mode=mode1|mode2;用这种方法来判断当前的mode包含了哪些。
如if(mode1|mode==1)说明mode包含mode1
如果要把mode1从mode里面清楚出来,就要用上面的方式了mode&=~mode1;
这时再看看mode|mode1的结果变成了0
要把mode1从mode里面清楚出来,留下其余的内容给mode,似乎就是这个理
不就是把mode所有位置0吗?
0 & ~0=0
1 & ~1=0
this.mode &= ~mode;
两个mode不一样,一个是对象属性,一个是方法的参数。
意思就是说在mode中如果包含mode1的时候 就在其位置置'0'
这样保证了mode的完整性能,只要就是替换mode中包含的mode1内容不再出现.对乎?
~以后,每一位和原来的都相反,导致&的结果必然是0,这个就是在代码级别(而不是用混淆器)防止反编译的一种举措
可能只是把一些问题更加清楚点认识。mode&=~mode1;
field mode 和argument mode1,
操作就是把mode中包含mode1的时候,都置位'0',长度mode一样保证.
‘/gi’,
正则表达式中这个‘/gi’是什么意思?