【发布时间】:2012-09-16 02:31:06
【问题描述】:
我有一个十六进制数字的字符串行,比如 12ab43c ..(但我已经将它作为字符串读取),我想将它传递给 unsigned char* linehex 或直接传递给十六进制,以便我以后可以在我的程序中使用它进行进一步计算。 哪种方法最有效?
【问题讨论】:
-
查看
strtol函数。
我有一个十六进制数字的字符串行,比如 12ab43c ..(但我已经将它作为字符串读取),我想将它传递给 unsigned char* linehex 或直接传递给十六进制,以便我以后可以在我的程序中使用它进行进一步计算。 哪种方法最有效?
【问题讨论】:
strtol函数。
最简单的可能是将其读取为数字开头,而不是将其读取为字符串,然后进行转换。例如:
some_stream >> std::hex >> your_number;
快速演示代码:
#include <iostream>
int main() {
int x;
std::cin >> std::hex >> x;
std::cout << x << "\n";
return 0;
}
输入:ff
输出:255
【讨论】: