将任意32位二进制数转为IP地址形式输出
#include <stdio.h> int bin_des(int x, int n) { if(n == 0) return 1; return x*bin_des(x,n-1); } int main(void) { int i; int ip[4] = {0}; char a[33] = {"11111111111111111111111100000000"}; for(i=0;i<8;i++) { if(a[i] == '1') ip[0] += bin_des(2,7-i); } for(i=8;i<16;i++) { if(a[i] == '1') ip[1] += bin_des(2,15-i); } for(i=16;i<24;i++) { if(a[i] == '1') ip[2] += bin_des(2,23-i); } for(i=24;i<32;i++) { if(a[i] == '1') ip[3] += bin_des(2,31-i); } printf("\n %d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3]); return 0; }