Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 如何在 C 中按字符将 ASCII 转换为十六进制?
我喜欢将用 ascii 代码表示的十六进制值转换为十六进制值表示的数字。
举个例子:
A5应转换为0xA5(即 165)
A5
0xA5
但是A5代表ASCII(所以0x4135我猜)
ASCII
0x4135
有任何想法吗?谢谢!
使用strtol.
strtol
long x = strtol("A5", 0, 16) // x is now 165
如果你有strtol可用的(我相信它在标准库中),它应该像调用strtol使用 16 作为基础一样简单。
char *end val = strtol("A5", &end, 16)
另一种方法是使用 sscanf():
sscanf("A5", "%x", &bar);