Konvertiere ein Binärstring und wandel die Binärzahl in einen 16-bit unsigned Integer um.
public class BinaryConverter {
public UShort binaryStringToUShort(final String binaryString){
if(binaryString.length() != 16){
return new UShort(0);
}
int value = 0;
int m = 0;
for(int n = binaryString.length() - 1; n >= 0; n--){
if(binaryString.charAt(n) == '1'){
value += Math.pow(2,m);
}
m++;
}
return new UShort(value);
}
public String UShortToBinaryString(final UShort value){
StringBuilder sb = new StringBuilder();
int temp = value.getValue();
int m = 15;
for(int n = 0; n <= 15; n++){
if(temp / (int) Math.pow(2,m) == 1){
sb.append('1');
temp -= (int) Math.pow(2,m);
} else {
sb.append('0');
}
m--;
}
return sb.toString();
}
public static void main(String[] args){
BinaryConverter bc = new BinaryConverter();
UShort stringValue = bc.binaryStringToUShort("0010000000011100");
System.out.println(stringValue.getValue());
String origin = bc.UShortToBinaryString(stringValue);
System.out.println(origin);
}
}