//this method is for negative integers only, not fractions or positive numbers public string decToBinNeg(long input, int size) { //decToBinNeg const int MATHEMATICALLY_NECESSARY_CORRECTION = 1; if (input == -1) //special case for when input is -1 {//if return new string(Constants.ONE, size); }//if else {//else //make input positive //mathmaticallyNecessaryCorrection = -1 uint inputAdjusted = (uint)Math.Abs(input) - MATHEMATICALLY_NECESSARY_CORRECTION; DecInt dec = new DecInt(inputAdjusted, size); ConverterToBin binConvert = new ConverterToBin(); BinInt unsignedBin = binConvert.Convert(dec); //convert the positive number to binary //arguement size affects whether you'll get 0010 vs 00000010 String inputAsPosBin = unsignedBin.StoredInput; string toBeReturned = NegateBin(inputAsPosBin); return toBeReturned; }//else }
public SignedBinInt Convert(SignedDecInt signedDecInteger) { uint inputNumber = signedDecInteger.GetUnsignedNumber(); int size = signedDecInteger.allowedNumberOfBits; SignedBinInt signedBin; if (inputNumber >= 0) { DecInt dec = new DecInt(inputNumber,size); ConverterToBin binConvert = new ConverterToBin(); BinInt bin = binConvert.Convert(dec); signedBin = new SignedBinInt(Constants.POSITIVE, bin.StoredInput, bin.allowedNumberOfBits); return signedBin; } else { string negBinRepresentation = this.decToBinNeg(inputNumber, size); signedBin = new SignedBinInt(Constants.NEGATIVE, negBinRepresentation, size); } return signedBin; }
public void SetUp() { converter = new ConverterToBin(); dec = new DecInt(""); }