1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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
*/
|