Ascii十六进制值为ascii数

时间:2012-10-09 10:08:12

标签: c hex

  

可能重复:
  How would you convert from ASCII to Hex by character in C?

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

举个例子:

A5应转换为0xA5(即165)

但是A5代表了ASCII(所以类似于0x4135

有什么想法吗? THX!

3 个答案:

答案 0 :(得分:2)

使用strtol

long x = strtol("A5", 0, 16)
// x is now 165

答案 1 :(得分:2)

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

char *end
val = strtol("A5", &end, 16)

答案 2 :(得分:1)

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

sscanf("A5", "%x", &bar);