Base 256 GUID字符串表示,带字符偏移0x01F

时间:2010-06-22 09:10:46

标签: c++

我需要创建一个128位GUID的字符串表示,代表8位块而不是4位;基地256:/为什么?因为我需要缩短GUID的字符串十六进制表示的长度,所以它太长了。我的最大数组大小为31加上NULL终止符。此外,字符值不能从0x000到0x01F ....这让我很头疼,但我知道可以做到。有关最佳和最安全方式的任何建议如何?现在我只是乱用memcpy并添加0x01F,但是数字一直在我的脑袋里蹦蹦跳跳......不能指责他们!我必须互相转换:\

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

让OLESTR首先将其转换为IIDFromString()的GUID,然后使用base64 as user Peter Tillemans suggests