A 位運算
題目
基礎的位運算和二進制相關的知識大家在程序設計課上已經學到,這學期的面向程序設計的硬件基礎也會給大家更深入的講解。這裏就不再贅述,只列舉一下知識點,不熟悉的同學請自行熟悉一下。
- 邏輯運算符, & , | , ~ , ^ , !
- 移位 >>,<<
- 各種類型變量的長度
- 補碼反碼
- memset初始化值一般設置爲0 or -1 or 0x3f
練習題
難度:簡單
給出一個小於的正整數a,將其低16位和高16位交換後輸出(用十進制表示的正整數)。
輸入
第一行一個正整數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;
}