常看到如下用法:
{
if ((attr >> 0 & 0x01) == 1) {
......
}
if ((attr >> 1 & 0x01) == 1) {
......
}
if ((attr >> 2 & 0x01) == 1) {
......
}
if ((attr >> 3 & 0x01) == 1) {
......
}
}
或者
attr=1,attr=2,attr=4,attr=8.....1024..
if ((x | attr) == x) {//attr}如何理解
{
if ((attr >> 0 & 0x01) == 1) {
......
}
if ((attr >> 1 & 0x01) == 1) {
......
}
if ((attr >> 2 & 0x01) == 1) {
......
}
if ((attr >> 3 & 0x01) == 1) {
......
}
}
或者
attr=1,attr=2,attr=4,attr=8.....1024..
if ((x | attr) == x) {//attr}如何理解
解决方案 »
- hibernate中自动生成dao文件的问题
- 我很菜,想问问关于反射的问题!!
- 100分问个关于WSAD基本问题,希望知道的多多指教!
- 直接在服务器端解析xml和把xml扔给客户端JS解析两者的区别,孰优孰劣?
- Webwork上传文件出现文件名和form中其他内容乱码!!!
- DB2 日期问题
- 觉得特别迷茫,请大家指点,关于学习J2EE,Weblogic和structs的方法、步骤。
- 关于写文件
- 初级问题
- jdbc for sql server已经装好了,在jbuilder中怎么设置,要设置path吗?还是用其它的办法
- JSP权限控制?
- 求救!Strut2+hibernate3.3+Spring3整合出的错误.
从右面开始的第n+1位是不是1
} attr=1,attr=2,attr=4,attr=8.....1024..
if ((x | attr) == x)
测试第N位是不是0
第一个好理解第n+1是否为0第二个:假设一个数转化为二进制是: xxx,(x | attr) == x 可以表示为(arr以4为例,即二进制:100): xxx
或 100
=xxx--------可以知道:如果(x | attr) == x 满足: x的最后2位必须为0,急:arr=4 测试 x最后是否有2个0,arr=8 测试x最后是否有3个0 ……