ip的int地址。

sukyin 2008-08-20 05:39:03

typedef unsigned int ui;
int main()
{
ui ip = 0;
ui a =0,b = 0,c =0,d =0;
scanf("%d.%d.%d.%d",&a,&b,&c,&d);

printf("\n%d.%d.%d.%d\n", a, b, c, d);

ip = a<<24+b<<16+c<<8+d;

printf("\nThe int IP is:%d\n",ip);

system("pause");
return 0;
}


将形如202.69.234.12的ip地址转换成int型的数字。这个是师弟刚才给我程序。快下班了,头昏脑胀,实在没看出问题。大家看看那里有问题。
错误是最后打印的int型ip总是0。

一会回家看大家的回帖,给分结贴。
...全文
386 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcmfys 2008-11-07
  • 打赏
  • 举报
回复
学习了
sukyin 2008-08-20
  • 打赏
  • 举报
回复
谢谢楼上几位。确实是运算符优先级的问题。今天还真没看出来。
这个是师弟做的一个tcp什么东西的一部分代码。。
sukyin 2008-08-20
  • 打赏
  • 举报
回复
谢谢楼上几位。看来主要是运算符优先级的问题。
sukyin 2008-08-20
  • 打赏
  • 举报
回复
谢谢楼上几位。看来主要是运算符优先级的问题。
sukyin 2008-08-20
  • 打赏
  • 举报
回复
谢谢楼上几位。看来主要是运算符优先级的问题。
lin_style 2008-08-20
  • 打赏
  • 举报
回复
哦。
看出来了。
printf 中的%d要用ud形式


还要用htons将数据转换下。
bitxinhai 2008-08-20
  • 打赏
  • 举报
回复
typedef unsigned int ui;
int main()
{
ui ip = 0;
ui a =0,b = 0,c =0,d =0;
scanf("%d.%d.%d.%d",&a,&b,&c,&d);

printf("\n%d.%d.%d.%d\n", a, b, c, d);

ip = (a<<24) + (b<<16) + (c<<8) + d;//运算符优先级问题!!!

printf("\nThe int IP is:%ud\n",ip);

system("pause");
return 0;
}
coverallwangp 2008-08-20
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef unsigned int ui;
int main()
{
ui ip = 0;
ui a =0,b = 0,c =0,d =0;
scanf("%d%d%d%d",&a,&b,&c,&d);

printf("\n%d.%d.%d.%d\n", a, b, c, d);

ip = a*pow(2,24)+b*pow(2,16)+c*pow(2,8)+d;

printf("\nThe int IP is:%d\n",ip);

system("pause");
return 0;
}
lin_style 2008-08-20
  • 打赏
  • 举报
回复
估计是要这样吧

int a;
scanf("%d",&a);

printf (char*)&a, (char*)&a+1....

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧