典型运用的位运算操作了,实际上是计算机硬件内存条里的数据以二进制形式来运算,常常用到系统软件 ,例如windows 开机过程 ,嵌入式设备驱动程序,例如,对某个端口
寄存器中指定位进行位一级的处理,不过这针对于c的位运算,若采用java的话,只能通过JNI技术来时,调用本地c/c++动态库来实现,但这可能破坏了java跨平台的特性,尽量不要用,LZ有兴趣的话,可以OO我,最好直接去问 谷歌大神或百度 大娘 {:soso_e144:}
我这里有口诀,记得大学了老师教滴,哈哈,现在还有点影响,这里给群里黑马们透露透露
清零取法要用&,某位置一可用|
若要取反和交换,轻轻松松用^
右移“>>” ,右边的位被挤掉,对于左边空出的位,若是正数请补0,反之请补1
左移“<<” ,左边的位数被挤掉,对于右边的的位,若是正式请补1,反之请补0
特殊的运算符“>>>” 左边移动的位一律补上0
还要注意位运算的优先级~的优先级最高,其次是<<、>>和>>>,再次是&,然后是^,优先级最低的是|
这里我做个位运算的案例:
典型的物品的属性绑定,是否操作,传入限制的类型等 代码如下
/**
@version 1.0
@auther jonn
*/
public class produ
{
/* 限制类型 :A, 不可交易;B,不可销毁;C,不可销售 ;D,不可使用虚拟币消耗 ; E, 物品锁定*/
public static final int A=1,B=2,C=3,D=4,E=5;
int value;
/* 判断是否使用传入限制类型,若返回true则不能进行此类操作*/
public boolean check(int type) {
return (this.value&type)!=0;
}
/* 添加绑定值*/
public void addValue(int value) {
this.value|=value;
}
/*取消绑定值*/
public vode removeValue(int value){
this.value^=value;
}
好累哦,白天学习,天天啃视频,晚上疯high论坛了,群里有撒疑问了给我留言,若有错误,还望l论坛里批正.....很晚了,就此搁笔了,休息去了....
|