diff options
| author | Joshua Rahm <joshua.rahm@colorado.edu> | 2015-01-30 17:11:48 -0700 |
|---|---|---|
| committer | Joshua Rahm <joshua.rahm@colorado.edu> | 2015-01-30 17:11:48 -0700 |
| commit | 1c5e38fe69ac8a6decbdd8abe93112f4e3369315 (patch) | |
| tree | 926cef8cb76d46862ed2c4ec7028720611e47476 /src/utilities/BaseConverter.java | |
| download | Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.gz Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.bz2 Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.zip | |
added source
Diffstat (limited to 'src/utilities/BaseConverter.java')
| -rw-r--r-- | src/utilities/BaseConverter.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/utilities/BaseConverter.java b/src/utilities/BaseConverter.java new file mode 100644 index 0000000..c4fb116 --- /dev/null +++ b/src/utilities/BaseConverter.java @@ -0,0 +1,72 @@ +/* */ package utilities; +/* */ +/* */ public class BaseConverter +/* */ { +/* */ public static final String CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +/* */ +/* */ public static double convertToDecimal(String original, int base) +/* */ { +/* 12 */ int neg = 1; +/* 13 */ if (original.startsWith("-")) { +/* 14 */ original = original.substring(1); +/* 15 */ neg = -1; +/* */ } +/* 17 */ if (original.contains(".")) return neg * convertToDecimal(original, base, original.indexOf(".") - 1); +/* 18 */ return neg * convertToDecimal(original, base, original.length() - 1); +/* */ } +/* */ private static double convertToDecimal(String original, int base, int length) { +/* 21 */ if (base == 10) return Double.parseDouble(original); +/* 22 */ if (base == 1) return original.length(); +/* 23 */ if (original.length() == 0) return 0.0D; +/* 24 */ if (original.charAt(0) == '.') return convertToDecimal(original.substring(1), base, length); +/* 25 */ return Math.pow(base, length) * "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(original.charAt(0)) + convertToDecimal(original.substring(1), base, length - 1); +/* */ } +/* */ public static String convertFromDecimal(double original, int base) { +/* 28 */ if (original < 0.0D) return "-" + convertFromDecimal(-1.0D * original, base); +/* 29 */ if ((original < 1.0D) && (original > 0.0D)) return "0" + convertFromDecimal(1.0D + original, base).substring(1); +/* 30 */ if (base == 10) return original; +/* 31 */ if (base == 1) { +/* 32 */ String ret = ""; +/* 33 */ for (int i = 0; i < original; i++) ret = ret + "0"; +/* 34 */ return ret; +/* */ } +/* 36 */ double pwr = nearestLog(()original, base); +/* 37 */ String ret = ""; +/* 38 */ boolean lessThan = false; +/* 39 */ while ((original > 1.E-09D) || (pwr >= 1.0D)) { +/* 40 */ if ((!lessThan) && (pwr < 1.0D)) { +/* 41 */ ret = ret + "."; +/* 42 */ lessThan = true; +/* */ } +/* 44 */ if (original >= pwr) { +/* 45 */ ret = ret + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt((int)(original / pwr)); +/* 46 */ original %= pwr; +/* */ } +/* */ else { +/* 49 */ ret = ret + 0; +/* */ } +/* 51 */ pwr /= base; +/* */ } +/* 53 */ return ret; +/* */ } +/* */ public static String convertFromDecimal(long original, int base, long start, int digits) { +/* 56 */ if (original < base) { +/* 57 */ String ret = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt((int)original); +/* 58 */ while (digits != 0) { +/* 59 */ ret = ret + 0; +/* 60 */ digits--; +/* */ } +/* 62 */ return ret; +/* */ } +/* */ +/* 65 */ return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt((int)(original / start)) + convertFromDecimal(original % start, base, start / base, digits - 1); +/* */ } +/* */ public static long nearestLog(long start, int base) { +/* 68 */ return ()Math.pow(base, (int)(Math.log(start) / Math.log(base))); +/* */ } +/* */ } + +/* Location: Modulus.jar + * Qualified Name: utilities.BaseConverter + * JD-Core Version: 0.6.2 + */
\ No newline at end of file |