Not a bad method -- you can very quickly toggle switches on and off by calling
toggle(boolean on,int position)
and you can quickly check it the toggle at a position is on by calling
toggleIsOn(int position);
The code snippet is below, comments welcome. you have to declare toggleState yourself of course...;
public int toggleState=0; /** * if onOff==true we set the value at pos == 1 aka on * else we set it to 0; * @param onOff * @param pos */ public void toggle(boolean onOff, int pos){ if(toggleState==null){ toggleState=0; } if(onOff==true){ if(toggleIsOn(pos)){ //do nothing, already on } else{ //we want it on, and it is currently off toggleState+=2^pos; } } else{ if(toggleIsOn(pos)){ //It's on, and we want it off toggleState-=2^pos; } else{ //it's off and we want it off -- do nothing } } } public boolean toggleIsOn(int pos){ if(toggleState==null || toggleState < (2^pos)) return false; //divide toggle state int multiple=toggleState/(2^pos); //if the switch is on, multiple will be an odd number, otherwise it will be even. return multiple%2==1; }
1 comment :
This was just pseudocode --
2 ^ pos is not how to do wexpojnents in java. Instead you should do Math.pow(2,pos);
Post a Comment