P1100 高低位交换

    • 1.9K通过
    • 3.8K提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签 位运算,按位 字符串 数论,数学 进制
  • 难度 普及-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    给出一个小于 $2^{32}$ 的正整数。这个数可以用一个 $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^{32}$ 的正整数

    输出格式:

    将新的数输出

    输入输出样例

    输入样例#1: 复制
    1314520
    输出样例#1: 复制
    249036820
    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。