IP地址转换C语言编写
时间: 2023-08-02 13:37:20 浏览: 49
IP地址通常采用点分十进制表示法,即用4个十进制数表示,每个数之间用点号分隔,例如192.168.0.1。而在计算机内部,IP地址通常采用32位二进制数表示。因此,IP地址的转换需要将点分十进制表示法转换为32位的二进制数,或将二进制数转换为点分十进制表示法。
以下是将点分十进制转换为32位二进制数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char ip_address[16];
printf("Enter IP address in dotted decimal notation: ");
scanf("%s", ip_address);
// Split IP address into 4 integers
int ip[4];
char *token = strtok(ip_address, ".");
for (int i = 0; token != NULL; i++) {
ip[i] = atoi(token);
token = strtok(NULL, ".");
}
// Convert IP address to 32-bit binary
unsigned int binary_ip = 0;
for (int i = 0; i < 4; i++) {
binary_ip += ip[i] << (24 - 8 * i);
}
printf("Binary IP address: %u\n", binary_ip);
return 0;
}
```
输入一个点分十进制格式的IP地址,程序将其转换为32位二进制数并输出。
以下是将32位二进制数转换为点分十进制格式的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int binary_ip;
printf("Enter IP address in binary notation: ");
scanf("%u", &binary_ip);
// Convert binary IP address to decimal
int ip[4];
for (int i = 0; i < 4; i++) {
ip[i] = (binary_ip >> (24 - 8 * i)) & 0xFF;
}
printf("Dotted decimal IP address: %d.%d.%d.%d\n", ip[0], ip[1], ip[2], ip[3]);
return 0;
}
```
输入一个32位二进制数,程序将其转换为点分十进制格式的IP地址并输出。
阅读全文