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

convert key value of hexadecimal to decimal

本文关键字:十进制 转换 键值 十六进制      更新时间:2023-10-16

我想将键击表示转换为它的十进制形式。例如:-输入字符串为

D

^ @ ^ ^ @ ^ A49的

应转换为0004000149Ie ^@ - 00^ D -04^ -01年我从下面的链接

找到了正确的值http://techurls.tripod.com/dha.htm

编辑:

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

是否有任何标准的lib函数或这是需要使用开关情况下完成的?

我相信你对所涉及的概念有一点误解:

首先,"^@^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);