ASCII 編碼是 C++ 中每個標準 7 位元字元的數值表示法。每個字元——字母、數字、標點符號以及控制碼——都會對應到一個介於 0 到 127 之間的唯一整數。在 C++ 中,當你需要操作個別字元、驗證輸入,或執行低階字串處理時,就會用到這些編碼。例如,大寫字母 'A' 的 ASCII 編碼是 65,而小寫的 'a' 則是 97。與其死記這些數值,你可以使用線上 ASCII 對照表,即刻查詢任何字元的十進位、十六進位、八進位和二進位值。當你在處理舊式系統、網路通訊協定,或需要原始位元組值的嵌入式環境時,這特別有用。
撰寫 C++ 程式時,你經常需要在字元與其數值編碼之間轉換。最簡單的方式是將 char 轉型為 int,這會自動回傳其 ASCII 十進位值。例如,int code = static_cast<int>('B'); 會將 66 賦值給 code。反之,你也可以將整數轉型回字元,以取得它所代表的符號。十六進位值常用於除錯、記憶體傾印和二進位檔案格式中,因此能快速查詢 0x41(十進位 65)或 0x20(空格字元)這類值可以節省時間。ASCII 對照表工具將全部 128 個編碼以可搜尋的格式整理,讓你能依類別(例如控制字元、標點符號或數字)進行篩選,無需捲動即可精確找出所需項目。
除了基本的字元處理之外,ASCII 編碼對於解析文字檔、實作自訂編碼,或與需要特定位元組值的硬體進行介接等任務也至關重要。例如,如果你正在讀取使用 ASCII 控制字元來標示記錄分隔符的二進位檔,你必須知道 0x1E(十進位 30)代表「記錄分隔符」控制字元。同樣地,在處理序列通訊協定時,你可能需要送出歸位字元 (0x0D) 或換行字元 (0x0A) 來表示指令結束。ASCII 對照表工具以多種格式提供這些值,因此無論你需要的是十進位的 13、十六進位的 0x0D,或八進位的 015,都能複製到精確的數值供程式使用。

為什麼 C++ 開發需要 ASCII 對照表
C++ 並未內建 ASCII 編碼的參考資料,因此開發人員往往只能死記常見的數值,或上網搜尋可能不完整或格式不佳的對照表。線上 ASCII 對照表提供了單一可靠的來源,收錄全部 128 個標準編碼,消除了這類困擾。該工具的搜尋功能可讓你透過字元名稱(例如 "space")、控制字元縮寫(例如 "LF"),或任意進位制的數值來查找。例如,當你正在除錯包含不可列印字元的字串時,可以搜尋 "char:0" 一次查看所有控制碼。這比翻閱文件或猜測哪個數值對應哪個字元要有效率得多。
ASCII 對照表工具也會將字元分類為邏輯群組,例如「Letters」(字母)、「Digits」(數字)、「Punctuation」(標點符號)以及「Controls」(控制字元)。當你在撰寫驗證邏輯時,這特別有用。例如,如果你需要檢查某個字元是否為數字,可以快速得知所有數字都落在十進位 48 ('0') 到 57 ('9') 之間。同樣地,大寫字母介於 65 ('A') 到 90 ('Z') 之間,小寫字母則介於 97 ('a') 到 122 ('z') 之間。當你從頭撰寫像 isUpper() 或 isDigit() 這類函式時,這些範圍非常容易參考。該工具也包含了「Delete」字元 (127),這個字元常被忽略,但在以終端機為基礎的應用程式中卻至關重要。
使用線上 ASCII 對照表的另一項優勢,是能夠直接將數值複製到你的程式碼中。與其手動輸入 0x48 或 72,你可以選取字元 'H' 那一列,點擊「Copy」來取得你所需要的精確值。這能降低打錯字的風險,尤其是在使用容易出錯的十六進位或八進位值時。該工具也會顯示每個字元的 7 位元二進位表示,這在進行位元運算,或需要檢查位元組中的個別位元時非常有用。例如,當你在實作同位元檢查時,可以利用二進位值來計算字元中已設定的位元數量。
如何在 C++ 中查詢 ASCII 編碼
- 在瀏覽器中開啟 ASCII 對照表工具。
- 瀏覽完整的 128 列表格,或使用搜尋框查找特定字元。你可以透過以下方式搜尋:
- 字元名稱(例如 "space" 或 "tab")
- 控制字元縮寫(例如 "LF" 或 "CR")
- 十進位值(例如 "65")
- 帶進位前置詞的值(例如十六進位的 "0x41" 或八進位的 "0101")
- 特殊語法,例如
char:0或char:A
- 使用類別篩選器來隔離特定的字元群組,例如「Controls」(控制字元)、「Punctuation」(標點符號)、「Digits」(數字)或「Letters」(字母)。當你只需要查看表格的某個子集時,這非常有用。
- 查看你所感興趣字元的十進位、十六進位、八進位和二進位值。例如,字母 'A' 會顯示如下:
Decimal Hexadecimal Octal Binary 65 0x41 0101 01000001 - 點擊該列的「Copy」按鈕,以你偏好的格式複製該值。接著你可以直接將其貼到 C++ 程式碼中,例如
char c = 65;或int code = 0x41;。 - 對任何你需要的其他字元重複此流程。該工具會保留你的搜尋和篩選設定,讓你無需重設即可快速查找多個值。
在 C++ 程式碼中使用 ASCII 編碼
一旦查詢到你所需的 ASCII 編碼,就能以多種方式在 C++ 程式中使用。最常見的做法是在 char 與 int 之間轉型,以便在字元與其數值之間相互轉換。例如,以下程式碼片段會印出字元 'B' 的 ASCII 十進位值:
char ch = 'B';
int asciiValue = static_cast<int>(ch);
std::cout << "The ASCII value of '" << ch << "' is " << asciiValue << std::endl;
這段程式碼會輸出:The ASCII value of 'B' is 66。你也可以在程式碼中直接使用十六進位字面值。例如,若要將字元 'H' 賦值給變數,可以寫成:
char ch = 0x48;
這等同於 char ch = 'H'; 或 char ch = 72;。十六進位值在處理二進位資料或記憶體位址時特別有用,因為它們能自然對應到位元組邊界。
ASCII 編碼對於字元驗證與處理也同樣重要。例如,如果你正在撰寫一個將小寫字母轉為大寫的函式,可以利用「'a' 與 'A' 之差為 32」這個 ASCII 特性。以下是可能的實作方式:
char toUpper(char c) {
if (c >= 'a' && c <= 'z') {
return c - 32;
}
return c;
}
在這個函式中,c - 32 會從小寫字母的 ASCII 值中減去 32,將其轉換為對應的大寫字母。ASCII 對照表工具確認 'a' 為 97、'A' 為 65,因此差值確實是 32。同樣地,你可以檢查字元的 ASCII 值是否落在 48 ('0') 到 57 ('9') 之間,藉此判斷它是否為數字。
至於更進階的用途,例如解析二進位檔或實作自訂編碼,你可能需要處理控制字元。這些包括不可列印的編碼,例如「Start of Heading」(SOH, 0x01)、「End of Transmission」(EOT, 0x04),以及「Escape」(ESC, 0x1B)。ASCII 對照表工具列出全部 33 個控制字元,連同其縮寫與說明。例如,當你在撰寫終端機模擬器時,可能需要處理「Bell」字元 (0x07),它會觸發一個音效提示。你可以透過該工具查到其十進位值為 7,因此可以撰寫 std::cout << '\a'; 或 std::cout << static_cast<char>(7); 來產生響鈴聲音。
依賴 ASCII 碼的常見 C++ 工作
ASCII 碼是許多常見 C++ 工作的基礎,從簡單的輸入驗證到複雜的字串操作。其中最常見的用途之一是檢查字元是否為字母、數字或空白字元。例如,以下函式會將字元與代表空格 (32)、Tab (9)、換行 (10)、歸位 (13) 和換頁 (12) 的 ASCII 碼進行比較,藉此判斷該字元是否為空白字元:
bool isWhitespace(char c) {
return c == 32 || c == 9 || c == 10 || c == 13 || c == 12;
}
您也可以使用 ASCII 表工具來查找其他空白字元的代碼,例如垂直定位 (11) 或不中斷空格 (延伸 ASCII 中的 160,雖然這超出了 7 位元標準的範圍)。
另一項常見的工作是在大寫和小寫之間轉換字串。如前所述,ASCII 中 'a' 與 'A' 的差值為 32,因此您可以撰寫一個像這樣的函式,將字串轉換為小寫:
std::string toLower(const std::string& str) {
std::string result;
for (char c : str) {
if (c >= 'A' && c <= 'Z') {
result += c + 32;
} else {
result += c;
}
}
return result;
}
此函式會逐一檢視字串中的每個字元,如果是大寫字母,則在其 ASCII 值上加上 32。ASCII 表工具確認 'A' (65) + 32 = 'a' (97),因此此轉換是正確的。
ASCII 碼也用於字串的排序與比較。根據預設,C++ 會根據字元的 ASCII 值以字典順序比較字串。這表示大寫字母 (65–90) 會排在小寫字母 (97–122) 之前,而數字 (48–57) 會排在字母之前。例如,字串 "Apple" 會排在 "apple" 之前,因為 'A' (65) 小於 'a' (97)。如果您需要不區分大小寫的排序,可以在比較之前將所有字元轉換為相同的大小寫。ASCII 表工具可協助您驗證字元的相對順序,讓您能撰寫正確的比較邏輯。
在網路程式設計中,ASCII 碼經常用於解析和建構通訊協定訊息。例如,HTTP 標頭是基於文字的,並使用 ASCII 字元來分隔欄位和值。例如,「Content-Length」標頭後面接著冒號 (0x3A) 和空格 (0x20),然後是長度的十進位數字字串。如果您正在編寫 HTTP 用戶端或伺服器,則需要知道這些代碼才能正確解析傳入的訊息或格式化送出的訊息。ASCII 表工具提供了您所需的精確值,例如冒號的 0x3A 和空格的 0x20。
最後,ASCII 碼對於處理二進位資料至關重要。當您讀取或寫入二進位檔案時,經常會處理代表 ASCII 字元的原始位元組。例如,二進位檔案可能會使用 ASCII 碼 0x1E (十進位的 30) 來標記新記錄的開始。若要讀取這樣的檔案,您需要檢查每個位元組是否為此值。ASCII 表工具讓您能快速查找這些代碼,讓您無需猜測或記住數值即可實作相關邏輯。對於更複雜的二進位格式,您可能還需要處理延伸 ASCII (8 位元) 或 Unicode,但 7 位元 ASCII 表仍然是大多數基於字元之作業的基礎。
如需其他 C++ 開發工具,您可能也會發現 JSON Formatter 對於偵錯 API 回應很有用,或者 Regex Tester 對於驗證字串模式也很有幫助。如果您正在處理時間戳記,Unix Timestamp Converter 可以協助您在人類可閱讀的日期和數值之間進行轉換。
更多相關主題:如何在程式設計和資料處理工作中使用 ASCII 碼。
相關閱讀:如何在本地從文字產生程式碼圖片。
相關閱讀:如何使用徽章產生器在 NBA 2K25 中獲得徽章電梯。
相關閱讀:如何檢視剪貼簿並檢查隱藏的文字詳細資料。