收集的价值,并将其存储在单独的变量
问题描述:
printf(" Dst Address:\n");
for(i = 0;i < 4;i++)
printf(" %d ",((ip->ip_dst.s_addr)&(0x0FF<<(i*8)))>>(i*8));
由此我能够打印目标IP地址为192.28.2.11但我只想要前两个数字192和28我怎么能得到这两个值。 ?收集的价值,并将其存储在单独的变量
答
出了什么问题只是修改你的代码:
int a[4];
for (i = 0; i < 4; i++)
a[i] = ((ip->ip_dst.s_addr)&(0x0FF<<(i*8)))>>(i*8);
这应该给他们你在a[0]
和a[1]
。
以下代码显示了一种方法。的IP地址被反转(0x0b0280c0
)由于86小端格式:
#include <stdio.h>
int main (void) {
int i;
unsigned int addr = 0x0b0280c0;
int a[4];
for (i = 0; i < 4; i++)
a[i] = ((addr)&(0x0FF<<(i*8)))>>(i*8);
printf ("%d %d %d %d\n", a[0], a[1], a[2], a[3]);
return 0;
}
它输出:
192 128 2 11
,你可以看到,组件被放置在单独的数组元素。
你想使用它们还是只打印它们?另外,你怎么做了这么复杂的事情,但不知道如何调整代码,甚至做一些不同的事情? – 2011-01-13 07:52:02