题目:

描述

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

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

本题含有多组输入用例,每组用例需要你将一个ip地址转换为整数、将一个整数转换为ip地址。

输入描述:

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

输出描述:

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

示例1

输入:

10.0.3.193
167969729

输出:

167773121
10.3.3.193

结果:

解题思路:

这题有点投机取巧,虽然题目上写的是字符串处理,但是我没有做字符串转换的步骤。

1,将ip转换为数字:用数字获取abcd四个ip位,然后第一个左移24位,第二个左移16位,第三个左移8位,将四个数字用位或相连。

* 数字输出时必须使用%u,不然可能会变成复数

2,将数字转换位ip:用获取到的数字,用会1111 1111 位与的方式取出每一个ip。

代码:

#include <stdio.h>
#include <string.h>int main() {int a, b, c, d;char ch;while(scanf("%d%c%d%c%d%c%d", &a, &ch, &b, &ch, &c, &ch, &d) != EOF) {//IP转10进制unsigned int temp = a << 24 | b << 16 | c << 8 | d;printf("%u\n", temp);//10进制转iptemp = 0;scanf("%u", &temp);a = (temp & 0xff000000) >> 24;b = (temp & 0x00ff0000) >> 16;c = (temp & 0x0000ff00) >> 8;d = temp & 0x000000ff;printf("%u.%u.%u.%u\n", a, b, c, d);}return 0;
}

C练题笔记之:牛客-HJ033.整数与IP地址间的转换相关推荐

  1. 牛客网--整数与IP地址间的转换

    题目描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数. 举例:一个ip地址为10.0.3.193 每段数字       ...

  2. 华为机考攻略(python)--字符串操作【9题】(第四题*HJ33整数与IP地址间的转换)

    系列文章目录 文章目录 系列文章目录 前言 一.*HJ33整数与IP地址间的转换 二.sound code 总结 前言 一.*HJ33整数与IP地址间的转换 描述: 原理:ip地址的每段可以看成是一个 ...

  3. 《刷题笔记》牛客网 字符集合(一刷)

    <刷题笔记>牛客网 字符集合(一刷) 文章目录 <刷题笔记>牛客网 字符集合(一刷) 1.题目分析: 2. 思路分析 3. 代码: 总结 1.题目分析: 本题有多组输入,题目的 ...

  4. 牛客网刷题笔记-SQL66 牛客每个人最近的登录日期(一)

    SQL66 牛客每个人最近的登录日期(一) 牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天. 有一个登录(login)记录表,简况如下: 第1行表示user_id为2的用户在2020- ...

  5. 【Java刷题笔记】牛客网Java入门 1~4

    1~4 类型转换 描述 输入描述: 输出描述: 示例1 示例2 内心想法: 代码实现: 收获: 简单运算 描述 输入描述: 输出描述: 示例1 内心想法: 代码实现: 收获: 四舍五入 描述 输入描述 ...

  6. 笔记②:牛客校招冲刺集训营---C++工程师(面向对象(友元、运算符重载、继承、多态) -- 内存管理 -- 名称空间、模板(类模板/函数模板) -- STL)

    0618 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-14 友元 友 ...

  7. 笔记③:牛客校招冲刺集训营---C++工程师(5.9 C++新特性)

    0625 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-38 5.6 ...

  8. 牛客网数据开发题库_牛客网SQL题库NO.32~40

    不要问为什么没有31题,大概被牛客吞掉了吧,哈哈哈哈 SQL 32[简单] 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 CREA ...

  9. 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

    目录 1.话题引入 2.在刷题过程中一些自己想说的 3.刷题时的一些小建议 4.个人感悟 1.话题引入 首先介绍一下我自己,本人是一名专科大一的学生:非计算机本专业:因为想拓宽自己的知识面和技术:于是 ...

最新文章

  1. java 线程关闭小结(转)
  2. 牛津大学的研究人员首次在人体植入“闭环”生物电子研究系统
  3. Python_logging模块
  4. PAT甲级1106 Lowest Price in Supply Chain:[C++题解]树、结点到根结点的距离、树形dp、记忆化搜索
  5. 78、VLAN间路由配置实验之单臂路由
  6. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1068:与指定数字相同的数的个数
  7. 为什么只有360公开支持华为系统,其他公司都不敢表态?
  8. 典型微型计算机控制系统的实例,微型计算机控制系统概述.ppt
  9. 文件共享服务器地址格式,文件共享服务器配置
  10. ubuntu下安装php redis
  11. 看过这五条,再离职!
  12. 分布式系统关注点(3)——过去这几十年,分布式系统的「数据一致性」精华都在这了!...
  13. 管理账目的计算机软件有哪些,会计核算软件有哪些功能模块
  14. keil5 下载器配置
  15. centos解压分卷rar_linux命令:tar分卷压缩与合并解压缩
  16. 同步四进制加法计数器(JK)
  17. 技术人的软实力(0)不可忽视的软实力培养
  18. SAP WRITE设置列表颜色 页眉页尾输出控制
  19. 正则表达式在线测试通过,java运行通不过
  20. 23电工杯数学建模A题

热门文章

  1. python精通大学_小白21天精通Python是如何做到的?
  2. 【平台介绍】元古数字藏品平台即将正式上线
  3. skia android编译错误解决
  4. Android vs iOS 程序开发:我该选哪一个?
  5. 并发与并行的区别(超级通俗易懂)
  6. Magic Leap开发指南(5)-- Hand Tracking
  7. 正反斜杠的区别_正斜杠( / )和反斜杠( \ )的区别
  8. datagrid系列之-基本添加行,删除行,插入行,自定义方法
  9. 艺术品交易平台需求设计文档
  10. 关于left,top和translate2d以及translate3d性能问题的详讲