- 高低位交换
- 2009-10-11 20:16:05 @
program p1201;
var a,z:int64;
b,c:array[1..32] of integer;
i,j:integer;
begin
read(a);
z:=1;
for i:=1 to 32 do
begin
b[i]:=(a mod 2);
a:=a div 2;
end;
for i:=1 to 16 do
c[i]:=b[17-i];
for i:=17 to 32 do
c[i]:=b[49-i];
a:=0;
for i:=1 to 32 do
begin
for j:=1 to 32-i do
z:=z*2;
a:=a+c[i]*z;
z:=1;
end;
write(a+c[32]);
end.
2 条评论
-
逍遥 LV 9 @ 2009-10-11 21:06:32
直接一个swap函数就搞定了
也可以用用shr -
2009-10-11 20:23:20@
同学……
这题你就用位运算吧……
要不swap函数也不错啊……
打那么长干嘛啊……
- 1