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 // printf函数中%x、%X区分大小写,且输出无符号整数(不输出前缀0x、0X)
// scanf函数中%x、%X不区分大小写
 #include<stdio.h>
int main()
{
__int64 a, b, sum;
while(scanf("%I64X %I64X", &a, &b)!=EOF)
{
sum=a+b;
if(sum<)
{
sum=-sum;
printf("-");
}
printf("%I64X\n", sum);
}
return ;
}
// 补充->补码
计算机中的符号数有三种表示方法,即原码、反码和补码。
三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”(0有两种表示:+0和-0),
而数值位,三种表示方法各不相同。

正数

正整数的补码是其二进制表示,与原码相同。

【例1】+9的补码是00001001。

备注:这个+9的补码是用8位2进制来表示的。

补码表示方式很多,同一个数字在不同的补码表示形式中是不同的。除了8位2进制,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。

负数

求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。

【例2】数0的补码表示是唯一的。

[+0]补=[+0]反=[+0]原=00000000

[-0]补=11111111+1=00000000

转化为原码

已知一个数的补码,求原码的操作其实就是对该补码再求补码:

⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

【例4】已知一个补码为11111001,则原码是10000111(-7)。

因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。

其余七位1111001取反后为0000110;再加1,所以是10000111。

补码的绝对值

【例5】-65的补码是10111111

若直接将10111111转换成十进制,发现结果并不是-65,而是191。

事实上,在计算机内,如果是一个二进制数,其最左边的位是1,则我们可以判定它为负数,并且是用补码表示。

若要得到一个负二进制补码的数值,只要对补码全部取反并加1,就可得到其数值。

如:二进制值:10111111(-65的补码)

各位取反:01000000

加1:01000001(+65)

5E - A + B Again的更多相关文章

  1. 可用性的维度(5E)

    可用性的维度 当我检查可用性文献时,我发现可用软件包含如用户友好.易学.可发现性.质量.有用的和阻止错误.在可用性工程中, Jakob Nielsen给出一个产品的五个属性:易学性.效率.可记忆性.容 ...

  2. 【c++ primer, 5e】函数声明 & 分离式编译

    p186~p188: 函数声明1.函数只能定义一次,但是可以声明多次. 2.函数的接口:返回类型 + 函数名 + 形参类型 3.为什么要在头文件中进行函数声明???在源文件中定义?暂时理解到,这么做可 ...

  3. 【c++ primer, 5e】【函数基础】

    p182~p185: 函数1.在调用函数和执行return语句的同时,也发生了控制权的转移. 2.函数返回值不能是一个数组.(但是可以返回一个包含数组的对象,或者指向数组的指针) 3.重要概念:名字的 ...

  4. 【c++ primer, 5e】【try语句块】

    p172~p177:c++的try语句块和异常处理: 1.通常,与用户交互的代码和对象相加(底层的代码)是分离开的,异常由与用户交互的代码处理(底层代码抛出异常就可以了). 2.C++的runtime ...

  5. 【c++ primer, 5e】构造函数 & 拷贝、赋值和析构

    [构造函数] 1.构造器就是创建对象时被调用的代码. 2.如果没有自定义构造器,那么编译器将自动合成一个默认的无参构造器. 3.自定义的构造器不允许加const,所创建const的对象只有在构造器代码 ...

  6. 【c++ primer, 5e】定义类相关的非成员函数

    练习 7.6 & 7.7 #include <iostream> #include <string> using namespace std; // Sales_dat ...

  7. 【c++ primer, 5e】设计Sales_data类 & 定义改进的Sales_data类

    [设计Sales_data类] 1.考虑Sales_data类应该有那些接口. isbn.combine.add.read.print... 2.考虑如何使用这些接口. Sales_data tota ...

  8. 【c++ primer, 5e】函数指针

    简单的示例: #include <iostream> using namespace std; int sum(int x, int y) { return x + y; } int ma ...

  9. 【c++ primer, 5e】函数匹配

    练习 6.49 候选函数:与所调用的函数的名字相同的函数的集合. 可行函数:给候选函数加上参数数量.参数类型的约束所得到的函数的集合. 6.50 a 3.4可行,二义匹配 b 2.4可行,2是最佳匹配 ...

随机推荐

  1. WilliamChart各种图表效果实现大全《IT蓝豹》

    WilliamChart各种图表效果实现大全,有水平线条表格,有柱状表格等.由LineFragment,BarFragment,StackedFragment,SandboxFragment几个fra ...

  2. java.lang.StringIndexOutOfBoundsException: String index out of range: 0

    hibernet 报错 java.lang.StringIndexOutOfBoundsException: String index out of range: 0 处理方法  数据表字段为char ...

  3. windows 激活venv问题

    .\ven\Scripts\activate.\ven\Scripts\activate : 无法加载文件 D:\github\ven\Scripts\activate.ps1,因为在此系统上禁止运行 ...

  4. js 浏览器页面切换事件

    document.addEventListener('visibilitychange', function() { console.log(isHidden() + "-" + ...

  5. excel 数据量较大边查询边输入到excel表格中

    public Resultmodel getexpenseMessagx(HttpServletResponse response, String date1, String date2) { lon ...

  6. java搭建web从0-1(第一步:创建web工程)

    intellij idea版本:2017 1.新建一个web工程 使用工具intellij ideal,注意:只有Ultimate版本的可以新建web工程,社区版本的不支持新建web工程   File ...

  7. 可上下拖动且有浮沉动画的View

    package com.ifenglian.superapp1; import android.animation.Animator;import android.animation.Animator ...

  8. PHP采集利器:Snoopy 试用心得

    Snoopy.class.php下载 Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单.Snoopy正确运行需要你的服务器的PHP版本在4以上,并且支持PCRE(Perl ...

  9. centos7 脚本搭建SVN

    #!/usr/bin/env bash #安装软件 HTTP 和 SVN软件 yum install -y httpd subversion mod_dav_svn #创建库文件夹并更改文件夹权限 m ...

  10. Meta-Analysis

    meta-analysis是用统计的概念与方法,去收集.整理与分析之前学者专家针对某个主题所做的众多实证研究,希望能够找出该问题或所关切的变量之间的明确关系模式,可弥补传统的Review Articl ...