OJ 1454 高低位交换

描述

给出一个小于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

题目要求修改二进制,但是呢直接修改二进制恐怕不简单,但是我们可以曲线救国,我们先使用位运算求出二进制,然后再使用数组存储二进制数的0和1,在将其变化,最后根据二进制的计算法则来计算十进制即可
 

#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int main()
{
    long n,sum=0;
    int s[32],b[32];
    while(cin>>n)
    {
        for(int i=31; i>=0; i--)
            if((n>>i)&1==1)
                s[32-i]=1;
            else s[32-i]=0;
        for(int i=1; i<33; i++)
        {
            if(i<=16)
                b[i+16]=s[i];
            else
                b[i-16]=s[i];
        }
        int k=0;
        for(int i=32; i>0; i--)
        {

            if(b[i]==1)
                sum+=pow(2,k);
                k++;
        }
        cout<<sum<<endl;
    }
    return 0;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IPv4是一种互联网协议版本,它使用32位的地址来唯一标识网络上的设备。每个IPv4地址由四个8的十进制组成,以点分十进制的形式表示,例如192.168.0.1。 IPv4地址由两部分组成,网络地址和主机地址。网络地址用来标识一组设备所在的网络,而主机地址用来标识在该网络上的具体设备。IPv4地址通过子网掩码来划分子网,将网络地址和主机地址分开。 IPv4地址共有近42亿个,这使得IPv4面临着地址耗尽的问题。为了解决这个问题,IPv6被提出,它采用了128的地址空间,可以提供更多的IP地址。 而在 OJ 考试中,可能会涉及到对IPv4地址的一些操作和计算,比如判断两个IP地址是否属于同一子网,计算网络地址和广播地址等。这种题目可以通过将IP地址和子网掩码进行逐的按与运算,来得到所需的网络地址和广播地址。 除了IP地址的操作外,OJ考试中还可能会涉及到其他与网络相关的题目,比如路由器配置、网络拓扑设计、路由表操作等。这些题目旨在考察学生对网络的理解和实践能力。 综上所述,oj考试中的IPv4题目是与IPv4地址相关的题目,设计的目的是考察学生对IPv4地址的理解和操作能力。在解题过程中,需要了解IPv4地址的二进制表示、按运算和子网划分等知识点。 ### 回答2: IPv4是指第四个版本的Internet Protocol(互联网协议),它用于在因特网上分配和管理IP地址。IPv4中的IP地址由32位二进制表示,每个二进制可以是0或1,因此总共有2的32次方个可能的地址。这意味着IPv4最多可以分配大约42亿个独特的IP地址。 IPv4的IP地址采用由点分隔的十进制表示法,每个字代表地址中的8个二进制。例如,IP地址"192.168.0.1"代表了二进制11000000.10101000.00000000.00000001。这样的IP地址通常被用于标识互联网上的计算机和其他网络设备。 而在在线评测(oj)考试中,IP地址可以用来识别用户的设备并记录其提交的答案。通过记录IP地址,考试系统可以防止作弊行为,例如同一时段内多次提交答案或使用多个账户进行作弊。 当然,随着互联网的发展和IPv4地址枯竭的问题,IPv6(第六个版本的Internet Protocol)正逐渐取代IPv4。IPv6采用了128的地址大小,为互联网提供了更大的地址空间以满足日益增长的设备量。IPv6的地址表示方法也不同于IPv4,它采用八组四的十六进制分隔,例如"2001:0db8:85a3:0000:0000:8a2e:0370:7334"。 总之,IPv4采用32位二进制表示IP地址,最多可以分配约42亿个地址。在oj考试中,IP地址可以用来识别用户设备并记录其提交的答案。而随着IPv4地址枯竭问题的出现,IPv6正逐渐取代IPv4成为新的互联网协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值