我想将关键笔划表示转换为其小数。 例如: - 输入字符串是
^ @ ^ d ^ @ ^ A49
这应该转换为0004000149 即^ @ - 00 ^ D -04 ^ A -01 我从以下链接中找到了正确的值
http://techurls.tripod.com/dha.htm
编辑: -
主要问题是映射值,即^ @ - 00 ^ D -04 ^ A -01
是否有任何标准的lib功能或者需要使用switch case来完成?
答案 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);