题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
主要注意输入整数的范围可能超过int型 2^31-1,因此要将输入输出的整数定义为long,对应输出的格式化用%ld
#include<stdio.h> int main(){ int ip[4]; long n; scanf("%d.%d.%d.%d",&ip[3],&ip[2],&ip[1],&ip[0]); // scanf("\n%ld",&n); long out = ip[0]+256*ip[1]+256*256*ip[2]+256*256*256*ip[3]; printf("%ld\n",out); int arr[4] = {0,0,0,0}; int k = 3; int r; while(k>=0){ r = n%256; n = n/256; arr[k--] = r; } printf("%d",arr[0]); for(int i=1;i<4;i++){ printf(".%d",arr[i]); } }