单选题 执行以下C++语言代码:
#include<iostream>
using namespace std;
int main ()
{
short x=-2013;
unsigned short ux=x;
cout<<ux<<end1;
return 1;
输出结果为______。
  • A.2013
  • B.34572
  • C.57339
  • D.63523
【正确答案】 D
【答案解析】[解析] 首先,要知道short和unsigned short这两个变量类型的意思。 short变量是占2B(16bit)的有符号整数。补码表示中的第一位为符号位,其余位为数值位。 unsigned short是无符号整数,即补码表示的第一位不是符号位,其余位跟short一样。 那么我们需要先写出x的二进制补码。 -2013的原码为:1000 011111011101 -2013的补码为:1111 1000 0010 0011 强制转换为unsigned short类型后,u的符号位成了ux的第一位数值位,即无符号整数ux的补码为1111 1000 0010 0011,正整数的原码跟补码相同, 即ux=63523,故本题选D。