将1字节数转换为十进制数

时间:2015-01-26 00:14:44

标签: c flash

首先,我很抱歉这个令人困惑的头衔。 我正在阅读Adobe's specs of SWF,我看到了一条声明,我不确定如何编码。

  

签名后面是一个单字节版本号。版本号不是ASCII字符,而是8位   数。例如,对于SWF 4,版本字节为0x04,而不是ASCII字符“4”(0x34)。

这实际上意味着0x20不是空格,实际上是数字20

现在,让我们说我有这个:

unsigned char c[1] = { 0x20 };

如何从20中获取值为c的整数?

编辑:

事实证明,并非我正在寻找的东西。具有该版本的字节实际上遵循以下方案:Chart of SWF versions to Flash versions

1 个答案:

答案 0 :(得分:1)

试试这个

char string[16];
int  value;
unsigned char c[1] = { 0x20 };

snprintf(string, sizeof(string), "%x", c[0]);
value = strtol(string, NULL, 10);

只要数字的十六进制表示具有文本十进制等效值,这将起作用,例如它不适用于0xA0