假设unsigned short类型占16位,x、y、z都是short类型。编写一程序,从键盘输入x,y的值(十进制形式),然后将x的高8位作为z的高8位,y的高8位作为z的低8位,最后输出z的值(十进制形式)。
【输入形式】
以十进制形式输入x和y的值,以空格隔开。
【输出形式】
以十进制形式在新的一行上输出z值。
【输入样例】
840 2177【输出样例】
776【样例说明】
840的二进制形式为: 0000 0011 0100 1000
2177的二进制形式为: 0000 1000 1000 0001
将840的高8位作为结果的高8位,2177的高8位作为结果的低8位,
所以结果为:0000 0011 0000 1000,即十进制形式为:776
我的代码:
#include<stdio.h>
int main()
{
short num1,num2,num3;
scanf("%d %d",&num1,&num2);
num3 = ((num1>>8)*255)+(num2>>8);
printf("%d\n",num3);
getchar();
return 0;
}
输入840 2177
输出8