我有一个保存在 std::string 中的十六进制 MAC 地址。将该 MAC 地址转换为 uint64_t 中保存的整数类型的最佳方法是什么?
我知道 stringstream、sprintf、atoi 等。我实际上用前 2 个函数编写了一些转换函数,但它们似乎比我想要的更草率。
那么,有人可以告诉我一个好的,干净的转换方式吗
std::string mac = "00:00:12:24:36:4f";
变成 uint64_t?
PS:我没有可用的 boost/TR1 工具,也无法将它们安装在实际使用代码的地方(这也是为什么我没有复制粘贴我的尝试之一,对此感到抱歉!)。因此,请保留直接 C/C++ 调用的解决方案。如果您有一个有趣的 UNIX 系统调用解决方案,我也会感兴趣!
原文由 John Humphreys 发布,翻译遵循 CC BY-SA 4.0 许可协议