2019E1_ A 位运算

感情迁移 提交于 2019-12-02 10:30:24

A 位运算

题目

基础的位运算和二进制相关的知识大家在程序设计课上已经学到,这学期的面向程序设计的硬件基础也会给大家更深入的讲解。这里就不再赘述,只列举一下知识点,不熟悉的同学请自行熟悉一下。

  • 逻辑运算符, &,|,~,^,!
  • 移位 >>,<<
  • 各种类型变量的长度
  • 补码反码
  • memset初始化值一般设置为0 or -1 or 0x3f

练习题

难度:简单

给出一个小于232
的正整数a,将其低16位和高16位交换后输出(用十进制表示的正整数)。

输入

第一行一个正整数t,表示数据组数(0<t<100) 接下来t行,每行一个正整数a(0<a<232)

输出

t行,每行一个正整数

样例输入

2
1
1314520

样例输出

65536
249036820

样例解释

1用二进制表示为0000 0000 0000 0000(高16位) 0000 0000 0000 0001(低16位) 交换后,0000 0000 0000 0001 0000 0000 0000 0000 值为65536

思路

注意数据范围。

代码


```#include <iostream>
using namespace std;

int main(){
    int time;
    cin>>time;
    while (time--){
        unsigned n;
        cin>>n;
        unsigned k=n>>16|n<<16;
        cout<<k<<endl;
    }
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!