Được đưa ra với đầu vào là giá trị địa chỉ IP và nhiệm vụ là biểu diễn địa chỉ IP đã cho dưới dạng tương đương thập lục phân của nó.
Địa chỉ IP là gì
Địa chỉ IP hoặc giao thức Internet là một số duy nhất mô tả duy nhất phần cứng của bạn được kết nối với mạng. Internet có nghĩa là qua mạng và giao thức xác định tập hợp các quy tắc và quy định phải tuân theo để kết nối. Do chỉ có địa chỉ IP nên hệ thống mới có thể giao tiếp với hệ thống khác qua mạng. Có hai phiên bản IP là -
- IPv4 (Giao thức Internet Phiên bản 4)
- IPv6 (Giao thức Internet Phiên bản 6)
Địa chỉ IP được biểu diễn dưới dạng dãy số có dạng -
151.101.65.121
Đối với việc chuyển đổi này, chương trình dưới đây đang sử dụng tệp tiêu đề “arpa / inet.h” được tạo cho các hoạt động internet
Ví dụ
Input-: 127.0.0.1 Ouput-: 0x7f000001 Input-: 172.31.0.2 Output-: 0xac1f0002
Thuật toán
Start Step1-> Declare function to reverse void reverse(char* str) set int len = 2 set int r = strlen(str) – 2 Loop While (len < r) call swap(str[len++], str[r++]) Call swap(str[len++], str[r]) Set r = r – 3 End End Step 2-> Declare function to convert IP address to hexadecimal void convert(int ip_add) declare char str[15] call sprintf(str, "0x%08x", ip_add) call reverse(str) print str step 3-> In main() declare int ip_add = inet_addr("127.0.0.1") call convert(ip_add) Stop
Ví dụ
#include <arpa/inet.h> #include <iostream> #include <string.h> using namespace std; //reverse hexadecimal number void reverse(char* str) { int len = 2; int r = strlen(str) - 2; while (len < r) { swap(str[len++], str[r++]); swap(str[len++], str[r]); r = r - 3; } } //Convert IP address to heaxdecimal void convert(int ip_add) { char str[15]; sprintf(str, "0x%08x", ip_add); reverse(str); cout << str << "\n"; } int main() { int ip_add = inet_addr("127.0.0.1"); convert(ip_add); return 0; }
Đầu ra
NẾU CHÚNG TÔI CHẠY MÃ TRÊN, NÓ SẼ TẠO ĐẦU RA SAU ĐÂY
0x7f000001