История изменений
Исправление pathfinder, (текущая версия) :
Напишите код, преобразующий 32-битное целочисленное представление ip-адреса в строковое.
Вот тут ничего не сказано о формате этого целочисленного представления. Но будем считать что у нас эээ... big-endian порядок следования четырех. Ну выразимся так. Первое число адреса самый старший байт адреса.
Я бы написал как-то так:
std::string Ip2String(uint32_t ip_addr)
{
uint32_t addr1 = (ip_addr >> 24) & 0xff;
uint32_t addr2 = (ip_addr >> 16) & 0xff;
uint32_t addr3 = (ip_addr >> 8) & 0xff;
uint32_t addr4 = ip_addr & 0xff;
char _buf[20];
snprintf(_buf,sizeof(buf),"%d.%d.%d.%d",(int)addr1,(int)addr2,(int)addr3,(int)addr4);
return std::string(_buf);
}
Предполагается, что за скоростью мы тут не гонимся.
Исправление pathfinder, :
Напишите код, преобразующий 32-битное целочисленное представление ip-адреса в строковое.
Вот тут ничего не сказано о формате этого целочисленного представления. Но будем считать что у нас эээ... big-endian порядок следования четырех. Ну выразимся так. Первое число адреса самый старший байт адреса.
Я бы написал как-то так:
std::string Ip2String(uint32_t ip_addr)
{
uint32_t addr1 = (ip_addr >> 24) & 0xff;
uint32_t addr2 = (ip_addr >> 16) & 0xff;
uint32_t addr3 = (ip_addr >> 8) & 0xff;
uint32_t addr4 = ip_addr & 0xff;
char _buf[20];
snprintf(_buf,sizeof(buf),"%d.%d.%d.%d",(int)add1,(int)addr2,(int)addr3,(int)addr4);
return std::string(_buf);
}
Предполагается, что за скоростью мы тут не гонимся.
Исходная версия pathfinder, :
Напишите код, преобразующий 32-битное целочисленное представление ip-адреса в строковое.
Вот тут ничего не сказано о формате этого целочисленного представления. Но будем считать что у нас эээ... big-endian порядок следования четырех. Ну выразимся так. Первое число адреса самый старший байт адреса.
Я бы написал как-то так:
std::string Ip2String(uint32_t ip_addr)
{
uint32_t addr1 = (ip_addr >> 24) & 0xff;
uint32_t addr2 = (ip_addr >> 16) & 0xff;
uint32_t addr3 = (ip_addr >> 8) & 0xff;
uint32_t addr4 = ip_addr & 0xff;
char _buf[20];
snprintf(_buf,sizeof(buf),"%d.%d.%d.%d",add1,addr2,addr3,addr4);
return std::string(_buf);
}
Предполагается, что за скоростью мы тут не гонимся.