本文共 1067 字,大约阅读时间需要 3 分钟。
#include<stdio.h> #include<string.h> char a[35]; int b[8]={1,2,4,8,16,32,64,128}; int c1[8],c2[8],c3[8],c4[8]; int main() { int n,t,t1,t2,t3,t4,i; while(scanf("%s",a)!=EOF) { t=t1=t2=t3=t4=0; n=strlen(a); if(n==32) { for(i=0;i<n;i++) if(i<=7) t1+=(a[i]-48)*b[7-i]; else if(i<=15) t2+=(a[i]-48)*b[15-i]; else if(i<=23) t3+=(a[i]-48)*b[23-i]; else t4+=(a[i]-48)*b[31-i]; printf("%d.%d.%d.%d\n",t1,t2,t3,t4); } else { memset(c1,0 ,sizeof(c1)); memset(c2,0 ,sizeof(c2)); memset(c3,0 ,sizeof(c3)); memset(c4,0 ,sizeof(c4)); for(i=0;i<n;i++) { if(a[i]=='.') t++; if(a[i]!='.'&&t==0) t1=t1*10+a[i]-48; else if(a[i]!='.'&&t==1) t2=t2*10+a[i]-48; else if(a[i]!='.'&&t==2) t3=t3*10+a[i]-48; else if(a[i]!='.'&&t==3) t4=t4*10+a[i]-48; } i=0; while(t1) { c1[i++]=t1%2; t1/=2; } i=0; while(t2) { c2[i++]=t2%2; t2/=2; } i=0; while(t3) { c3[i++]=t3%2; t3/=2; } i=0; while(t4) { c4[i++]=t4%2; t4/=2; } for(i=7;i>=0;i--) printf("%d",c1[i]); for(i=7;i>=0;i--) printf("%d",c2[i]); for(i=7;i>=0;i--) printf("%d",c3[i]); for(i=7;i>=0;i--) printf("%d",c4[i]); printf("\n"); } } return 0; }转载地址:http://trvws.baihongyu.com/