P1100 高低位交換(位運算)

2021-08-26 23:28:46 字數 817 閱讀 8480

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

例如,數13145201314520用二進位制表示為0000 0000 0001 0100 0000 1110 1101 100000000000000101000000111011011000(新增了1111個前導00補足為3232位),其中前1616位為高位,即0000 0000 0001 01000000000000010100;後1616位為低位,即0000 1110 1101 10000000111011011000。將它的高低位進行交換,我們得到了乙個新的二進位制數0000 1110 1101 1000 0000 0000 0001 010000001110110110000000000000010100。它即是十進位制的249036820249036820。

輸入格式:

乙個小於2^232的正整數

輸出格式:

將新的數輸出

輸入樣例#1:複製

1314520
輸出樣例#1:複製

249036820
對於乙個無符號整數,對他 左移16位+右移16位則為新數

位運算基本操作:

#include using namespace std;

int main()

P1100 高低位交換

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

洛谷 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 ...