C++:地平线2019相关题

无符号数和有符号数相加

题目

#include "stdafx.h"
#include "stdlib.h"
#include <string>
#pragma warning( disable : 4996) 
#include <iostream>

using namespace std;

int main()
{
	unsigned int a = 6;
	int b = -20;
	(a + b > 6) ? puts(">6") : puts("<6");
	system("pause");
	return 0;
}

答案及解释

C++条件运算符:https://www.runoob.com/cplusplus/cpp-conditional-operator.html
输出:>6
解释:

int main()
{
	unsigned int a = 6;
	int b = -20;
	(a + b > 6) ? puts(">6") : puts("<6"); // a+b 按无符号数计算,结果为无符号数
	printf("a+b=%d\n",(a+b));    // -14, a+b=fffffff2,补码表示,赋值给%d有符号整型数,所以为-14
	printf("a+b=%x\n", (a + b)); // fffffff2
	system("pause");
	return 0;
}
posted @ 2020-05-05 17:05  笑着刻印在那一张泛黄  阅读(195)  评论(0编辑  收藏  举报