給出乙個小於2
322^
232 的正整數。這個數可以用乙個32位的二進位制數表示(不足32位用0補足)。我們稱這個二進位制數的前16位為「高位」,後16位為「低位」。將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少(用十進位制表示)。
例如,數1314520用二進位制表示為0000 0000 0001 0100 0000 1110 1101 1000(新增了1111個前導00補足為3232位),其中前1616位為高位,即0000 0000 0001 0100;後1616位為低位,即0000 1110 1101 1000。將它的高低位進行交換,我們得到了乙個新的二進位制數0000 1110 1101 1000 0000 0000 0001 0100。它即是十進位制的249036820249036820。
輸入格式
乙個小於2
322^
232 的正整數
輸出格式
將新的數輸出
輸入輸出樣例
輸入
1314520
輸出
249036820
#include
using
namespace std;
intmain()
此**使用了位運算,將前16位向後移,後16位向前移
注意!**中的unsigned int不能少,要不然232的數int裝不下!如果用int,只能70分。寫**要仔細,有時候程式只和ac差乙個字。
這是我跟乙個紅名大佬copy過來的,我只想出了位運算解法
#include
using
namespace std;
intmain()
else
} a/=2
; x++;}
cout<
return0;
}
洛谷 P1100 高低位交換
p1100 高低位交換 include include define ll long long 定價代換ll 代替long long void sw int a,int b 自定義數值交換函式 void fun ll n ll sum 0 int x 32 int k 0 while n n一直對2...
洛谷 P1100 高低位交換
給出乙個小於 2 的正整數。這個數可以用乙個 32 位的二進位制數表示 不足 32 位用 0 補足 我們稱這個二進位制數的前 16 位為 高位 後 16 位為 低位 將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少 用十進位制表示 例如,數 1314520 用二進位制表示為 0000 ...
P1100 高低位交換
給出乙個小於2 232的正整數。這個數可以用乙個3232位的二進位制數表示 不足3232位用00補足 我們稱這個二進位制數的前1616位為 高位 後1616位為 低位 將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少 用十進位制表示 例如,數13145201314520用二進位制表示為...