hdu2057A + B Again(java对进制的计算)

A + B Again

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12892    Accepted Submission(s): 5636


Problem Description
There must be many A + B problems in our HDOJ , now a new one is coming.
Give you two hexadecimal integers , your task is to calculate the sum of them,and print it in hexadecimal too.
Easy ? AC it !
 

Input
The input contains several test cases, please process to the end of the file.
Each case consists of two hexadecimal integers A and B in a line seperated by a blank.
The length of A and B is less than 15.
 

Output
For each test case,print the sum of A and B in hexadecimal in one line.
 

Sample Input
  
  
+A -A +1A 12 1A -9 -1A -12 1A -AA
 

Sample Output
  
  
0 2C 11 -2C -90
 

Author
linle
 

Source
 


java对输入的不同进制进行加减运算:




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());
		}
    }
}






C/C++对进制计算的支持


#include<iostream>
#include"string.h"
#include <stdlib.h> 
#include "math.h"
using namespace std;

int main()
{	
	__int64 a,b;	
	while(scanf("%I64X %I64X",&a,&b)!=EOF)  //符号会被跳过   空格和 ‘ - ’
	{
		a+=b;
		//	printf("%I64X\n",a+b);   直接输出负数会取补码  
		if(a<0)
		{
			a=-a;
			printf("-%I64X\n",a);
		}
		else printf("%I64X\n",a);
	
	}
		return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值