給出乙個小於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給出乙個正整數,用乙個32位的二進位制數表示,將它的高低位交換,我們可以得到乙個新的數(十進位制)
先把這個數轉換成二進位制,把他的高低位交換,再把新的數轉換成十進位制
#include#include#include
#include
#include
#include
using
namespace
std;
unsigned
long
long
n,m;
unsigned
long
long
mod,wei;
unsigned
long
long ans[1001000
];unsigned
long
long shu,t=1
;string
s;int
main()
for(int i=17;i<=32;i++)
for(int i=1;i<=16;i++)
cout
}
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 ...