codevs 高低位交換 5641

2021-07-26 14:01:09 字數 642 閱讀 9487

題目描述 description

給出乙個小於longint範圍的正整數。這個數可以用乙個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。

輸入描述 input description

乙個小於longword範圍的正整數

輸出描述 output description

將新的數輸出

樣例輸入 sample input

1樣例輸出 sample output

位運算**:

varn,m:longint;

begin

readln(n);

writeln(swap(n) and (1 shl 32-1));

end.

高低位交換

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

高低位交換

題目描述 輸入乙個無符號整數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...