字串-06. IP地址轉換(20)
阿新 • • 發佈:2019-01-03
一個IP地址是用四個位元組(每個位元組8個位)的二進位制碼組成。請將32位二進位制碼錶示的IP地址轉換為十進位制格式表示的IP地址輸出。
輸入格式:
輸入在一行中給出32位二進位制字串。
輸出格式:
在一行中輸出十進位制格式的IP地址,其由4個十進位制陣列成(分別對應4個8位的二進位制數),中間用“.”分隔開。
輸入樣例:
11001100100101000001010101110010
輸出樣例:
204.148.21.114
程式:
#include #include #include #define STRING_SIZE 32 int main() { char str[STRING_SIZE + 1], ip[8]; int i, j, sum; gets(str); for(i = 0; i < 4; ++i) { sum = 0; /* 取子串 */ strncpy(ip, str + i * 8, 8); ip[8] = '\0'; /* 轉換為十進位制 */ for(j = 0; j < 8; ++j) { if(ip[j] == '1') sum += pow(2, 8 - j - 1); } if(i == 3) printf("%d\n", sum); else printf("%d.", sum); } return 0; }