将IPV4转换成整数

一个ip地址字符串如“192.168.100.100”,怎么(4*3+3+1)*1=16个字节,如果将ip地址是32bit,可以使用4个字节实现ip地址的压缩。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 //将IPV4转换成整数,例如192.168.0.0  32it 可以使用一个unsigned int表示
 4 int change(char * str)
 5 {
 6     unsigned int a=0;
 7     int n=0;//点的个数
 8     int sum=0;//每个数值
 9     int m[]={0x1000000,0x10000,0x100,1};
10     while(*str!=‘\0‘)
11     {
12         if(*str !=‘.‘)
13         {
14             sum=sum*10+(*str-‘0‘);
15         }
16         else
17         {
18             a+=sum*m[n++];
19             sum=0;
20         }
21         str++;
22     }
23     a+=sum;
24     return a;
25 }
26
27 int main()
28 {
29     char*str="192.168.1.255";
30     printf("%d\n",change(str));
31     return 0;
32 }
时间: 2024-11-05 23:27:28

将IPV4转换成整数的相关文章

第13题:整数转换成罗马数字&amp;第14题:罗马数字转换成整数

写在前面: 这两道题合起来写吧,其实整数转罗马数字我前天就写完了,当我想写罗马数转整数的时候竟然脑子一片空白,想了几分钟就想起来Map,本着学习的目的最终还是不想用Map,坚持C语言,今天脑子里直接涌出了Switch方式转换,看来"蹲在马桶上编程"的方式还是蛮不错的o(^▽^)o 整数转罗马数字:主要建立对应关系,输出时有点像百钱百鸡 罗马数字转整数:输入罗马数字(其实就是字符数组)后,for循环遍历,找出对应,这个再看不懂的建议去看看罗马数字表示方法. 第13题:整数转换成罗马数字

剑指offer之【把字符串转换成整数】

题目: 把字符串转换成整数 链接: https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0

《编程之法》1.4字符串转换成整数

题目描述:输入一个由数字组成的字符串,请把它转换成整数输出 分析:int型整数的范围为:-2147483648~+2147483647,这意味着字符串输入太长会没办法正常显示数字,故当转换后的数大于最大正数时,我们显示2147483647:当转换后的数小于最小负数时,我们显示-2147483648. 同时需要考虑字符串中含有非数字字符,以及字符串前有空格等情况,如"  123t444",这时我们规定输出123.此外,还应该考虑到字符串中含有正负号的问题.这些都是小问题,主要需要考虑溢出

程序员面试50题(4)—把字符串转换成整数[算法]

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题.建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同. 首先我们分析如何完成基本功能,即如何把表示整数的字符串正确地转换成整数.还是以"345

字符串转换成整数

题目描述 输入一个由数字组成的字符串,把它转换成整数并输出.例如:输入字符串"123",输出整数123. 给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi. 分析与解法 基本思路为:从左至右扫描字符串,把之前得到的数乘以10,然后加上当前字符所表示的数字. 然而,我们需要考虑以下几个问题: 输入为空指针时 数字前面的正负号 非法的字符 整形溢出 前三个问题很容易解决,这里主要考虑整形溢出的问题.一般来说,当发生

C语言将一个字符串转换成整数

1.环境 ubuntu16.04 Eclipse C语言 2.问题 用C语言编写程序,将一个字符串转换成整数. 3.解决方法 程序代码:https://github.com/southeast02/JZOF/blob/master/chap01_page12_1.c

[算法练习] 把字符串转换成整数

题目说明: 输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 程序代码: #include <gtest/gtest.h> using namespace std; int StrToInt(const char* szValue, int nBase = 0, bool* bValid = NULL) { long long nValue = 0; int nSign = 1; if (bValid) { *bValid

javascript将浮点数转换成整数

Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt 位运算符 Math.floor Math.ceil Description 一.parseInt 1. 实例 (1).parseInt("13nash");//13 (2).parseInt("")// NaN (3).parseInt("0xA") //10(十六进制) (4).parseInt(" 13")//13 (5)

Swift - 浮点数转换成整数(四舍五入与直接截断)

1,直接截去小数部分转换成整数 使用强制转换会将浮点部分去除,把整数部分转换为整数. 1 var i = Int(23.50) //23 2,四舍五入转换成整数 lroundf是一个全局函数,作用是将浮点数四舍五入转为整数. 1 var i = lroundf(23.50) //24