将十六进制的键值转换为十进制

时间:2014-07-14 11:08:44

标签: c++ c hex

我想将关键笔划表示转换为其小数。 例如: - 输入字符串是

^ @ ^ d ^ @ ^ A49

这应该转换为0004000149 即^ @ - 00    ^ D -04    ^ A -01 我从以下链接中找到了正确的值

http://techurls.tripod.com/dha.htm

编辑: -

主要问题是映射值,即^ @ - 00 ^ D -04 ^ A -01

是否有任何标准的lib功能或者需要使用switch case来完成?

1 个答案:

答案 0 :(得分:3)

我相信你误解了所涉及的概念:

首先," ^ @ ^ D ^ @ ^ A49"它不是一个十六进制数字序列,它是键击的可视化。 ^ @ == CTRL + @例如。

十六进制数字是以下形式写的数字:

0xFF00AB12,即基数为16的数字.0 == 0,1 == 1,...,9 == 9,A == 10,B == 11,...,F == 15。 (0x只是用于区分十六进制值与二进制或十进制数字的标准前缀。)

如果您的目标是初始化一个字符串或整数,并完全控制位的位置,我建议您将键盘输入作为一串十六进制数字(带或不带前缀,您的选择)。

完成后,您可以使用例如sscanf将字符串读取为整数。

int sscanf ( const char * s, const char * format, ...);

示例:

const char * hexstring = "FF800001";
unsigned int value;
sscanf(hexstring, "%x", &value);