用C语言将二进制转换为IP地址

原创 2012年03月25日 18:12:03

根据需要将任意32位二进制转换为IP地址。

输入:11111111

输出:255.0.0.0

思路:将输入的二进制数以每8个为一个单位转化为十进制 。

#include <stdio.h>

int bin_dec(int x, int n)  //自定义函数将二进制数转换为10进制
{
	if(n == 0)
	{
		return 1;
	}
	return x * bin_dec(x, n-1);   //递归调用bin_dec()函数
}

int main(void)
{
	int i;
	int ip[4] = {0};
	char a[33];
	printf("请输入二进制数: \n");
	scanf("%s", a);
	for(i=0; i<8; i++)
	{
		if(a[i] == '1')
		{
			ip[0] += bin_dec(2, 7-i);
		}
	}
	for(i=8; i<16; i++)
	{
		if(a[i] == '1')
		{
			ip[1] += bin_dec(2, 15-i);
		}
	}
	for(i=16; i<24; i++)
	{
		if(a[i] == '1')
		{
			ip[2] += bin_dec(2, 23-i);
		}
	}
	for(i=24; i<32; i++)
	{
		if(a[i] == '1')
		{
			ip[3] += bin_dec(2, 31-i);
		}
		if(a[i] == '\0')
		{
			break;
		}
	}
	printf("IP:\n");
	printf("%d.%d.%d.%d\n", ip[0], ip[1], ip[2], ip[3]);//输出IP地址

	return 0;
}

C语言实现字符串IP与整数型IP的相互转换

#include #include #include #include int main(int argc,char *argv[]) { const char *ip ="192.16...
  • u010003119
  • u010003119
  • 2014年09月07日 17:22
  • 3381

指针实现字符串IP地址转化为十进制IP地址输出-c语言

#include "spiderman.h" int ip_int(char *ip) //char *ip={"192.168.1.1"} { int count=0; int i=0; ...
  • Q5578926
  • Q5578926
  • 2014年06月08日 21:28
  • 1240

ip地址和整数转换

inet_addr函数  地址转换, 把"A.B.C.D"的IP地址转换为32位长整数 [声明]  unsigned long inet_addr ( const char FAR *cp );...
  • f81892461
  • f81892461
  • 2013年02月10日 22:08
  • 10067

C语言实现IP地址字符串转化成数值地址(双字)

/* author : ez date : 2015/7/11 describe : Convert IP string into IP numeric */ #include #in...
  • u012842205
  • u012842205
  • 2015年07月11日 22:47
  • 2185

IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)

1、htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short ne...
  • Cpp_funs
  • Cpp_funs
  • 2011年11月18日 13:40
  • 30999

用C把整数转换成Ip地址

#define PRINT_IP_FORMAT "%u.%u.%u.%u" #define PRINT_HIP(x)\ ((x >> 24) & 0xFF),\ ((x ...
  • wingking84
  • wingking84
  • 2014年06月28日 11:50
  • 1345

IP与点分十进制数的字符串之间的转换(c++)

自己写的一个IP地址与点分十进制数的字符串之间的转换的shi
  • loveyaqin1990
  • loveyaqin1990
  • 2014年09月04日 13:13
  • 1754

socket程序互相打印IP地址

“任何你真正想得到的一定是值得坚持的!”
  • qq_33044095
  • qq_33044095
  • 2016年10月08日 16:10
  • 866

字符串-06. IP地址转换(20)(Y)

字符串-06. IP地址转换(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B ...
  • kuenking111
  • kuenking111
  • 2014年11月30日 17:14
  • 1148

点分法IP地址和网络二进制表示的转换

字符串形式的IP地址和网络传输中的IP地址如何进行转换?字符串形式的IP地址主要是指点分法表示的IP地址,比如192.168.0.11,而实际在网络中表示IP地址时,需要转换成整数形式。...
  • xiaokaige198747
  • xiaokaige198747
  • 2017年12月13日 23:23
  • 60
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用C语言将二进制转换为IP地址
举报原因:
原因补充:

(最多只允许输入30个字)