aboutsummaryrefslogtreecommitdiff
path: root/src/utilities/BaseConverter.java
diff options
context:
space:
mode:
authorJoshua Rahm <joshua.rahm@colorado.edu>2015-01-30 17:11:48 -0700
committerJoshua Rahm <joshua.rahm@colorado.edu>2015-01-30 17:11:48 -0700
commit1c5e38fe69ac8a6decbdd8abe93112f4e3369315 (patch)
tree926cef8cb76d46862ed2c4ec7028720611e47476 /src/utilities/BaseConverter.java
downloadModulus3D-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.java72
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