积极废人02 2021-11-14 23:25 采纳率: 100%
浏览 199
已结题

C语言编程整数组合!!

假设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

  • 写回答

1条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include<stdio.h>
    
    int main()
    {
        unsigned short int num1,num2,num3;
        scanf("%hu%hu",&num1,&num2);
        num3 = ((num1>>8)*256)+(num2>>8);
        printf("%hu\n",num3);
        getchar();
        return 0;
    }
    
    

    img

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月14日