/******************** 将32位的ip二进制串转换为十进制 **************************/ #define MAX 32 #include<stdio.h> #include<stdlib.h> void display(char * ip); int change(char* str, int start); char ip[MAX +1]; int main(int argc, char* argv[]) { printf("please input the ip string of binary: /n"); scanf("%s",ip); display(ip); return 0; } //将32位的ip二进制串进行处理转化为点分十进制 void display(char *ip) { int i =0; for(;i<3;i++) { printf("%d.", change(ip,0+i*8)); } printf("%d/n", change(ip,0+i*8)); } //将二进制串转化为十进制 int change(char* str,int start){ int m = 0; int i = 0; int k = 0; for(i= start; i<start+8; i++) { m *=2; k = str[i] -'0'; if(k>=2) abort(); m += k; } return m; }