函式
<ios> <iostream>

std::hex

ios_base& hex (ios_base& str);
使用十六進位制
str 流的 basefield 格式標誌設定為 hex

basefield 設定為 hex 時,插入到流中的整數值將以十六進位制(即基數為 16)表示。對於輸入流,當此標誌設定時,提取的值也應以十六進位制表示。

basefield 格式標誌可以取以下任一值(每個值都有自己的操縱符)

標誌值設定時的效果
dec使用十進位制格式讀取/寫入整數值。
hex使用十六進位制格式讀取/寫入整數值。
oct使用八進位制格式讀取/寫入整數值。

請注意,basefield 標誌隻影響整數值的插入/提取(浮點值始終以十進位制解釋)。

另請注意,除非設定了 showbase 格式標誌,否則不會在數字前隱式地新增進位制字首。

對於標準流,basefield 標誌在初始化時被設定為 dec

引數

str
basefield 格式標誌 受到影響的流物件。
因為此函式是一個操縱符,它被設計為在不帶引數的情況下,與流上的插入 (<<) 和提取 (>>) 操作結合使用(見下例)。

返回值

引數 str

示例

1
2
3
4
5
6
7
8
9
10
// modify basefield
#include <iostream>     // std::cout, std::dec, std::hex, std::oct

int main () {
  int n = 70;
  std::cout << std::dec << n << '\n';
  std::cout << std::hex << n << '\n';
  std::cout << std::oct << n << '\n';
  return 0;
}

輸出
70
46
106


資料競爭

修改 str。對同一個流物件的併發訪問可能導致資料競爭。

異常安全

基本保證:如果丟擲異常,str 處於有效狀態。

另見