将数字的十六进制表示形式的字符串转换为实际数值
我有一个像这样的字符串:
"00c4"
我需要将其转换为由文字表示的数值:
0x00c4
我该怎么做?
I have a string like this:
"00c4"
And I need to convert it to the numeric value that would be expressed by the literal:
0x00c4
How would I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
strtol
函数(或strtoul
表示无符号长整型),来自 C 中的stdlib.h
或 C++ 中的cstdlib
,允许您将字符串转换为特定基数的 long,因此像这样的事情应该做:The
strtol
function (orstrtoul
for unsigned long), fromstdlib.h
in C orcstdlib
in C++, allows you to convert a string to a long in a specific base, so something like this should do:您可以修改C++ 常见问题解答:
You can adapt the stringify sample found on the C++ FAQ:
不存在“实际十六进制值”这样的东西。一旦您进入本机数据类型,您就处于二进制状态。上面介绍了如何通过十六进制字符串到达那里。将其显示为十六进制输出,同上。但它不是“实际的十六进制值”。这只是二进制的。
There is no such thing as an 'actual hex value'. Once you get into the native datatypes you are in binary. Getting there from a hex string is covered above. Showing it as output in hex, ditto. But it isn't an 'actual hex value'. It's just binary.