在C ++中将base 16 string转换为base 256 string,反之亦然

时间:2010-10-14 09:06:35

标签: c++ string

任何人都知道如何或任何可以使用的库?

提前致谢!

char * base16Str="1234567F";
char * base256Str;

2 个答案:

答案 0 :(得分:1)

这是一个非常简单的转换,因为您只需要将基数为16的字符对映射到每个256字符的基数。即:

char256[n] = char16[2*n] | (char16[2*n+1] << 4);

我假设char16[]条目的范围是0到15,即您已经从'0' - '9''a' - { {1}}(或'f' - 'A')。

答案 1 :(得分:0)

一种简单的方法是使用表查找:

const char digits[257] = "0123456789ABCDEFGHIJKLMNOPQRST" /* ... */;

在数组中搜索字符,并使用索引作为数字的值。

要获取可打印数字,请使用该值作为数组的索引。

顺便说一句,数组是257而不是256,为'\ 0'字符分配空间,这不是数字字符,而是取悦字符串函数。