位操作设置查看*******???/** * 设置操作 * @param permission 哪一位 * @param yes允许 或 不允许*/publi
位操作 设置 查看
*******
?
?
?
/** * 设置操作 * @param permission 哪一位 * @param yes 允许 或 不允许 */public void setPermission(int permission, boolean yes) {//进行位运算int temp=1;//移位 000001 0000010 00000100 00001000temp=temp << permission;if(yes){//目标是设置为可操作 将操作为设置为1 其他位不变// 0|X=X 1|X=1aclState |=temp;}else{//目标是设置为不可操作 将操作为设置为0 其他位不变//首先取反 111110 1111111101 11111111011 1111111110111// 0&X=0 1&X=XaclState &=~temp;}}/** * 查询某个位的开关 * @param permission 哪一位 * @return 1表示允许 0表示不允许 -1表示不确定 */public int getPermission(int permission) {//0000001int temp=1;//0000001 000000010 0000000100 00000001000temp=temp << permission;//0&X=0 1&X=X 只有当目标位不为0时即为1时 temp才能为非0temp=aclState & temp;if(temp!=0){//说明为该操作位 为 1 可执行return ACL_YES;}return ACL_NO;}??
?
?
?
?
// 都是正数才管用的var n:int = 5; ?// 设置位 n |= flag;// 取消位~flag & n;// 获取位n & flag;
?
?
?
?
**********
