0

可能重复:
如何在 C 中按字符将 ASCII 转换为十六进制?

我喜欢将用 ascii 代码表示的十六进制值转换为十六进制值表示的数字。

举个例子:

A5应转换为0xA5(即 165)

但是A5代表ASCII(所以0x4135我猜)

有任何想法吗?谢谢!

4

3 回答 3

2

使用strtol.

long x = strtol("A5", 0, 16)
// x is now 165
于 2012-10-09T10:11:45.637 回答
2

如果你有strtol可用的(我相信它在标准库中),它应该像调用strtol使用 16 作为基础一样简单。

char *end
val = strtol("A5", &end, 16)
于 2012-10-09T10:11:52.343 回答
1

另一种方法是使用 sscanf():

sscanf("A5", "%x", &bar);
于 2012-10-09T10:58:11.183 回答