解法一:
import java.util.*;
import java.math.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
long a = sc.nextLong(16);
long b = sc.nextLong(16);
if(a+b >= 0)
System.out.printf("%X\r\n",a+b);
else
System.out.printf("-%X\r\n",-(a+b));
}
sc.close();
}
}
解法二:
import java.util.*;
public class Main
{
public static void main(String _[])
{
Scanner s=new Scanner(System.in);
while(s.hasNext()){
long i = Long.parseLong(s.next().replaceAll("\\+",""),16)
+
Long.parseLong(s.next().replaceAll("\\+",""),16);
//replaceAll("\\+",""),去除其中的‘+’,因为进制计算不支持带“+”的某一进制的数字字符串,‘-’可以,还需要判断正数负数
if(i<0)
System.out.println("-"+Long.toHexString(-i).toUpperCase());
else System.out.println(Long.toHexString(i).toUpperCase());
}
}
}