21xrx.com
2024-12-27 17:34:13 Friday
登录
文章检索 我的文章 写文章
C++ 十六进制输出技巧
2023-07-05 05:03:24 深夜i     --     --
C++ 十六进制 输出技巧

C++ 是一种十分强大的编程语言,支持多种数据类型和输出格式,其中十六进制输出也是其一个非常实用的技巧。下面我们将介绍 C++ 的一些十六进制输出技巧。

1. 将整数转换为十六进制输出

在输出一个整数时,我们可以使用 C++ 的控制符 “hex” 来将其转换为十六进制格式进行输出。例如:


#include <iostream>

using namespace std;

int main()

  int num = 42;

  cout << "The decimal number is: " << num << endl;

  cout << "The hexadecimal number is: " << hex << num << endl;

  return 0;

输出结果为:


The decimal number is: 42

The hexadecimal number is: 2a

可以看到,通过将控制符 “hex” 加在输出流上,我们可以将整数 42 转换为十六进制数 2a 进行输出。

2. 控制十六进制数长度

我们有时候需要控制十六进制数的长度,比如想要输出一个长度为 4 的十六进制数,可以使用 C++ 的 fill 和 width 方法。fill 方法可以将指定长度的字符用一个特定的字符填充,而 width 方法可以控制输出的宽度。例如:


#include <iostream>

using namespace std;

int main()

{

  int num = 42;

  cout << "The hexadecimal number is: " << hex << num << endl;

  cout.fill('0');

  cout.width(4);

  cout << "The padded hexadecimal number is: " << hex << num << endl;

  return 0;

}

输出结果为:


The hexadecimal number is: 2a

The padded hexadecimal number is: 002a

可以看到,通过使用 fill 和 width 方法,我们得到了一个长度为 4,左侧补 0 的十六进制数输出。

3. 输出十六进制字符串

有时候,我们需要将一个字符串转换为十六进制格式进行输出,可以使用 C++ 的 iomanip 头文件中的 setbase 方法以及 setw 方法来实现。例如:


#include <iostream>

#include <iomanip> 

#include <sstream> 

using namespace std; 

int main() 

  string str = "Hello, world!"; 

  stringstream ss; 

  for (int i = 0; i < str.length(); i++) { 

    ss << hex << setw(2) << setfill('0') << (int)str[i]; 

  } 

  cout << "Hexadecimal string is: " << ss.str() << endl; 

  return 0; 

输出结果为:


Hexadecimal string is: 48656c6c6f2c20776f726c6421

可以看到,使用 C++ 的 setbase 和 setw 方法,我们成功地将一个字符串转换为了十六进制格式,并以字符串形式输出。

通过上述三种方法,我们可以看出 C++ 的十六进制输出技巧非常实用,在实际编程中也是一个经常使用的技巧。无论是将整数转换为十六进制数,还是输出个定宽带前导零的十六进制数,或是输出字符串的十六进制格式,C++ 都能够满足我们的需求。

  
  

评论区

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