高低位交換

2021-08-27 23:37:26 字數 747 閱讀 2919

給出乙個小於2^32的正整數。這個數可以用乙個32位的二進位制數表示(不足32位用0補足)。我們稱這個二進位制數的前16位為「高位」,後16位為「低位」。將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少(用十進位制表示)。

例如,數1314520用二進位制表示為0000 0000 0001 0100 0000 1110 1101 1000(新增了11個前導0補足為32位),其中前16位為高位,即0000 0000 0001 0100;後16位為低位,即0000 1110 1101 1000。將它的高低位進行交換,我們得到了乙個新的二進位制數0000 1110 1101 1000 0000 0000 0001 0100。它即是十進位制的249036820。

乙個小於2^32的正整數

將新的數輸出

1314520
249036820
各個測試點1s

cqbz noip club

#include

#include

#include

#include

using namespace std;

unsigned int sum;

int a[33];

int k,l;

int main()

for (int i=1; i<=16; i++)

for (int i=1; i<=32; i++)

cout

}

高低位交換

題目描述 輸入乙個無符號整數n unsigned int型別 n可以用乙個32位的二進位制數表示 不足32位用0補足 我們稱這個二進位制數的前16位為 高位 後16位為 低位 輸出將n的高位和低位交換後的值 用十進位制表示 例如 輸入1314520,它的二進位制表示為0000 0000 0001 0...

演算法 位元組高低位交換

對乙個位元組資料,逐個交換其高低位,例如11010001,經過0 7,1 6,2 5,3 4對應位的交換,變成10001011 對於該問題,我們最先想到的是對原位元組通過移位操作來逐位處理,使用另乙個變數來儲存交換後的結果。這種解決方案處理起來思路清晰,編寫 應該不難。下面是該思路對應的 unsig...

codevs 高低位交換 5641

題目描述 description 給出乙個小於longint範圍的正整數。這個數可以用乙個32位的二進位制數表示 不足32位用0補足 我們稱這個二進位制數的前16位為 高位 後16位為 低位 將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少 用十進位制表示 例如,數1314520用二進...