今天去艺龙面试,面试的时候的一个面试题,题目是给一个uint32_t的一个整数,转换成IP字符串
大概思路是对的,每次取8位进行处理,然后字符串内加入一个'.',最后再用'\0'代替最后一个'.'
然后8位数字0-255,当然012这种0是不展现的,最后000的情况还需要补0,当时在纸上写的时候0处理得不够好,回来以后想了想,设一个flag标志表示是否前面已经有大于0的数,有的话'0' 就加入字符串,没有的话省略,最后如果flag没有被重置的话就补一个'0'。
大概思路就是这样,下面附上代码
测试用例用了0x0->0.0.0.0、0xFFFFFFFF->255.255.255.255
然后一些比较随机和综合的数0x0x64646464->100.100.100.100、0x66164E00->102.22.78.64
char* changeIP(uint32_t num){
char *res=new char[16];