zoukankan      html  css  js  c++  java
  • 将字符串表示的IP地址转变为整形表示

    当时面试上机的想法是,直接使用uint32_t变量来存ip地址,遍历字符串带".",然后去值,利用移位来将这个值填到uint32_t对应的位置上。这样的麻烦之处在于:

    1,遍历字符串,还得记录每个"."出现的位置;

    2,移位操作;

    而最巧妙的做法是,利用一个uint8_t的数组(长度为4)和sscanf函数进行取ip字符串对应的值:

    uint32_t ip2long(char* ip) {

    uint8_t addr[4] = {0};

    sscanf(ip, "%d.%d.%d.%d", &addr[0],&addr[1],&addr[2],&addr[3]);

    return *(uint32_t*)addr;

    }

    5行代码就搞掂,而我上机时候写的应该是接近20行了吧?而且循环调用atoi()函数,无论是性能和简洁程度都无法比。

    教训是,在看一些优秀的代码时,不能走马观花!努力去思考当时作者的想法。

  • 相关阅读:
    算术操作、张量转换、矩阵运算、归约计算
    CNN与RNN
    基本使用与常用函数
    RNN与LSTM
    CNN训练算法与正则化
    CNN的层级结构
    激活函数
    反向传播与参数更新
    Pipline
    模型存储
  • 原文地址:https://www.cnblogs.com/lidabo/p/9649969.html
Copyright © 2011-2022 走看看