c++ - 带字符偏移量 0x01F 的 Base 256 GUID 字符串表示

标签 c++

我需要制作一个 128 位 GUID 的字符串表示,它表示 8 位 block 而不是 4 位;像 base 256 一样:/为什么?因为我需要缩短 GUID 的字符串十六进制表示的长度,它太长了。我的最大数组大小为 31 加上 NULL 终止符。此外,字符值不能从 0x000 到 0x01F...。这让我很头疼,但我知道这是可以做到的。关于最好和最安全的方法有什么建议吗?现在我只是在乱搞 memcpy 并添加 0x01F 但这些数字一直在我脑海中跳来跳去......不能把它们钉下来不!我必须相互转换:\

最佳答案

尝试 base64 编码:它为每个字符打包 6 位并且仍然是可移植的。您将需要 22 个字符以可移植的方式存储 128 位 GUID。

关于c++ - 带字符偏移量 0x01F 的 Base 256 GUID 字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3091718/

相关文章:

c++ - std::tr1::shared_ptr 是如何实现的?

c++ - 在 CMake 项目中解耦应用程序和库

c++ - 使用指针表示法反转 cstring 时出现意外结果

c++ - istream 过载不起作用

c++ - 迭代器模式——循环引用

c++ - 我怎样才能制作一个不断改变输入的文本框?

c++ - C++ 中正确的 typedef 位置

c++ - 获取顶点索引以保存三角剖分

c++ - 如何创建和分发 SteamVR 仪表板覆盖

c++ - 帮忙做这个设计