此类10 进制和2进制的转化就好好的利用到c语言的优点, 有左移 和右移可以完美的转化,此外16进制用%x 10:%d 输出也可以转化数值
#include <stdio.h>
int main(void)
{
int a,b,c,d;
unsigned int n1,n2;
while(scanf("%d.%d.%d.%d",&a,&b,&c,&d) != EOF)
{
scanf("%u",&n1);
n2 = (a<<24)+(b<<16)+(c<<8)+d;
printf("%u\n",n2);
a=(n1>>24);
b=(n1>>16)&255;
c=(n1>>8)&255;
d=n1&255;
printf("%d.%d.%d.%d\n",a,b,c,d);
}
}
int main(void)
{
int a,b,c,d;
unsigned int n1,n2;
while(scanf("%d.%d.%d.%d",&a,&b,&c,&d) != EOF)
{
scanf("%u",&n1);
n2 = (a<<24)+(b<<16)+(c<<8)+d;
printf("%u\n",n2);
a=(n1>>24);
b=(n1>>16)&255;
c=(n1>>8)&255;
d=n1&255;
printf("%d.%d.%d.%d\n",a,b,c,d);
}
}