首页 > 试题广场 >

整数与IP地址间的转换

[编程题]整数与IP地址间的转换
  • 热度指数:210940 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个长整数。
举例:一个ip地址为10.0.3.193
每段数字             相对应的二进制数
10                   00001010
0                    00000000
3                    00000011
193                  11000001

组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。

数据范围:保证输入的是合法的 IP 序列



输入描述:

输入 
1 输入IP地址
2 输入10进制型的IP地址



输出描述:

输出
1 输出转换成10进制的IP地址
2 输出转换后的IP地址

示例1

输入

10.0.3.193
167969729

输出

167773121
10.3.3.193
头像 派仔
发表于 2020-08-11 22:43:22
import java.util.*; public class Main { private final int N = 4; public Main() { } public String convert(String str) { // i 展开全文
头像 Laigus
发表于 2021-09-19 04:18:36
#include <iostream> using namespace std; int main() { long long int a,b,c,d; long long int num; while(scanf("%lld.%lld.%lld.% 展开全文
头像 代码界的小白
发表于 2021-12-05 16:41:28
题目主要信息 1、将ip地址转化为长整数 2、将长整数转换为ip地址 方法一:通过二进制进行转换 具体方法 在问题中有两个转换过程,一个是将ip地址转换为长整数,一个是将长整数转换为ip地址,通过题目中的转换过程进行转换。 对于ip地址转换成长整数: 1、将ip地址切割成四段数字 2、每段数字用8位 展开全文
头像 吃的舍得
发表于 2022-01-05 00:02:48
此类10 进制和2进制的转化就好好的利用到c语言的优点, 有左移 和右移可以完美的转化,此外16进制用%x  10:%d 输出也可以转化数值 #include <stdio.h> int main(void) {     int a,b,c,d; &n 展开全文
头像 牛客155969019号
发表于 2021-10-15 18:58:19
while True: try: ip = input() num = input() except: break else: # ip to num ip_list = ip.split('.' 展开全文
头像 江帆-
发表于 2021-11-02 13:15:00
用到int和bin函数,在10进制和2进制之间反复转换 def transfer_ip2num(ip): ip_list = ip.split('.') bin_str = '' for x in ip_list: bin_str += bin(int(x)) 展开全文
头像 摸鱼学大师
发表于 2021-10-20 11:04:56
题目的主要信息: ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数 输入需要将一个ip地址转换为整数、将一个整数转换为ip地址 方法一:逐位分割,逐位计算 具体做法: 对于两个输入,题目已明确表示第一个输入是字符串型的IP地址, 展开全文
头像 僵小鱼201907022347731
发表于 2021-11-01 22:55:59
while(line = readline()) { if(line.includes(".")) { toNum(line) } else { toIp(line) } } function toIp(num) { const str = Number(num).t 展开全文
头像 牛客415790898号
发表于 2022-04-17 21:16:12
不懂为啥这道题难度也算中等?这不是入门题目吗? int main() { unsigned int a, data[4]; scanf("%d.%d.%d.%d", &data[0], &data[1], &data[2], &dat 展开全文
头像 Aether·Zhang
发表于 2022-02-21 21:04:29
HJ33.整数与IP地址间的转换 #include <iostream> #include <string> #include <sstream> #include <regex> #include <string.h> const in 展开全文