public class Main {
static Map<Character, Integer> charInt = new HashMap<>();
static Map<Integer, Character> intChar = new HashMap<>();
static {
for (char i = '0'; i <= '9'; i++) {
charInt.put(i, i - '0');
intChar.put(i - '0', i);
}
int number = 10;
for (char i = 'a'; i <= 'v'; i++) {
charInt.put(i, number);
intChar.put(number, i);
number++;
}
}
public static void main(String[] args) throws IOException {
//a:928179,b:10802
//c:938981
char[] a = "sadj".toCharArray(), b = "ahi".toCharArray();
int carry = 0;
int i = a.length - 1, j = b.length - 1;
while (i >= 0 && j >= 0) {
int sum = charInt.get(a[i]) + charInt.get(b[j]) + carry;
a[i] = intChar.get(sum % 32);
carry = sum / 32;
i--;
j--;
}
while (i >= 0) {
int sum = charInt.get(a[i]) + carry;
a[i] = intChar.get(sum % 32);
carry = sum / 32;
i--;
}
String res = new String(a);
if (carry > 0) {
res = intChar.get(carry) + res;
}
System.out.println(res);
}
}
32进制数相加
最新推荐文章于 2022-10-31 20:52:41 发布