洛谷 P1100 高低位交換

2022-06-21 13:24:15 字數 812 閱讀 9947

給出乙個小於\(2^\)的正整數。這個數可以用乙個\(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^\)的正整數

將新的數輸出

輸入 #1

1314520
輸出 #1
249036820
#include #include using namespace std;

int a[35];

int main()

for (int i=16; i>0; --i)

m += a[i] * pow(2, 16-i);

for (int i=32; i>16; --i)

m += a[i] * pow(2, 48-i);

cout << m << endl;

return 0;

}

洛谷 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 232的正整數。這個數可以用乙個3232位的二進位制數表示 不足3232位用00補足 我們稱這個二進位制數的前1616位為 高位 後1616位為 低位 將它的高低位交換,我們可以得到乙個新的數。試問這個新的數是多少 用十進位制表示 例如,數13145201314520用二進位制表示為...

集訓作業 洛谷P1100 高低位交換

這個題簡單來說就是把乙個數轉成32位的2進製數,不夠的補0。然後把這個數的前半部分和後半部分互換,再計算結果。思路簡單明瞭,接下來是 include include include includeusing namespace std long long a,b,shu 50 s 1,zshu in...