- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBitsArray.java
More file actions
Latest commit
33 lines (31 loc) · 995 Bytes
/
Copy pathBitsArray.java
File metadata and controls
33 lines (31 loc) · 995 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
classBitsArray{
privateStringbits;
BitsArray(intnumBits,intvalue){
this.bits=String.format("%"+numBits+"s",Integer.toBinaryString(value)).replaceAll(" ","0");
}
BitsArray(Stringpart){
this.bits=part;
}
StringgetBits(){
returnbits;
}
intgetValue(){
returnInteger.parseInt(this.bits,2);
}
BitsArraygetRange(intstartingInd,intendingInd){
returnnewBitsArray(this.bits.substring(startingInd, endingInd));
}
BitsArraysetRange(intstartingInd,intendingInd,BitsArraybitStream){
returnnewBitsArray(this.getBits().substring(0, startingInd)+bitStream.getBits()+this.getBits().substring(endingInd, 40));
}
booleanisEmpty(){
returnString.format("%"+this.bits.length()+"d",0).replaceAll(" ","0").equals(this.bits);
}
}
classMixedReturn{
Runnablerunnable;intinterger;
MixedReturn(inti,Runnabler){
this.interger=i;
this.runnable=r;
}
}