package jvm.util.code;
/**
* Created by Haochen on 2017/1/5.
*/
public class PureDecimal extends Getter {
@Override
public double value(String trueCode) {
char[] array = trueCode.toCharArray();
double result = 0;
double r = 0.5;
for (int i = 1; i < array.length; ++i, r /= 2) {
result += Integer.parseInt("" + array[i]) * r;
}
if (trueCode.startsWith("1")) {
result *= -1;
}
return result;
}
@Override
public Code valueCode(String trueCode) {
return new ValueCode(trueCode.startsWith("1") ?
trueCode.replaceFirst("1", "-0.") : trueCode.replaceFirst("0", "0."));
}
@Override
public void expand(Code code, int bit, int fill) {
for (int i = code.code.length(); i < bit; ++i) {
code.code += fill;
}
}
}