21xrx.com
2024-12-28 12:47:02 Saturday
登录
文章检索 我的文章 写文章
C++ 中字符串转换为十六进制数
2023-07-06 12:02:35 深夜i     --     --
C++ 字符串 转换 十六进制数

C++中的字符串转换为十六进制数可以使用stringstream和iomanip头文件中的函数来实现。十六进制数在计算机科学中十分常见,它们可以用来表示颜色、ASCII码和二进制数据等。这篇文章将讲述如何将一个字符串转换为十六进制数。

1. 将字符串转换为十进制数

首先,需要将字符串转换为十进制数,使用istringstream函数将字符串输入到流中。通过while循环将流输入的字符记录到一个整型变量中。当while循环结束后,字符串将被转换为一个整数。代码如下:


#include <iostream>

#include <sstream>

using namespace std;

int main() {

  string str = "10";

  int num;

  istringstream ss(str);

  ss >> num;

  cout << "Decimal representation: " << num << endl;

  return 0;

}

2. 将十进制数转换为十六进制数

接下来,将十进制数转换为十六进制数。使用ostringstream函数将整数输出到流中。然后使用setfill和setw函数设置输出宽度和前导零。最后使用hex函数将整数以十六进制格式输出。代码如下:


#include <iostream>

#include <sstream>

#include <iomanip>

using namespace std;

int main() {

  string str = "10";

  int num;

  istringstream ss(str);

  ss >> num;

  ostringstream oss;

  oss << setfill('0') << setw(2) << hex << num;

  string hexstr = oss.str();

  cout << "Hexadecimal representation: " << hexstr << endl;

  return 0;

}

将上述两段代码结合起来,即可实现将字符串转换为十六进制数的功能。完整代码如下:


#include <iostream>

#include <sstream>

#include <iomanip>

using namespace std;

int main() {

  string str = "10";

  int num;

  istringstream ss(str);

  ss >> num;

  ostringstream oss;

  oss << setfill('0') << setw(2) << hex << num;

  string hexstr = oss.str();

  cout << "Decimal representation: " << num << endl;

  cout << "Hexadecimal representation: " << hexstr << endl;

  return 0;

}

在实际使用中,可以将上述程序封装成一个函数,将字符串作为参数传递进去,返回一个十六进制数的字符串。这样,在需要将字符串转换为十六进制数的时候,只需要调用这个函数即可。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复