文字轉二進位轉換工具 — 編碼與解碼
輸入任意文字即可轉換為二進位(0和1),或貼上二進位碼以解碼回文字。每個字元透過其ASCII/Unicode值進行轉換。可選擇空格分隔、換行分隔或連續二進位輸出。交換按鈕可立即反轉上一次的轉換。
運作原理
文字轉二進位的運作原理
電腦中的每個字元都以數字形式儲存。對於標準ASCII文字,字母「A」對應數字65,「B」對應66,小寫「a」對應97,空格對應32,依此類推。將文字轉換為二進位時,此工具會查找每個字元的數值(ASCII/Unicode碼位),然後將該數字用二進位(基數2)表示,並補齊至8位。例如:「H」= 十進位72 = 二進位01001000,「e」= 十進位101 = 二進位01100101,「l」= 十進位108 = 二進位01101100。
反向過程(二進位轉文字)讀取8位元一組的資料,將每組從二進位轉換回十進位數,然後查找對應碼位的字元。如果貼上空格分隔的二進位(如01001000 01100101),工具會依空格分割。如果貼上連續的二進位(如0100100001100101),會自動按8位元分組。每個8位元組必須恰好包含8個0或1,否則工具會顯示錯誤,指出無效位元組的位置。
二進位與十六進位的資料表示比較
二進位(基數2)只使用0和1,是數位資料最基本的表示方式——直接反映了電腦記憶體中位元的儲存方式。但它較為冗長:一個ASCII字元需要8位數字。十六進位(基數16,使用0–9和A–F)更加簡潔:每個十六進位位代表恰好4個二進位位(半位元組),因此一個位元組只需2位十六進位數字。「H」= 十六進位0x48,而二進位為01001000。
當需要查看或操作單個位元時,二進位表示最為有用——例如檢查位元遮罩中的旗標位元、理解Unicode碼位如何編碼為UTF-8位元組,或在位元層面分析網路封包結構。對於大多數資料檢查任務,十六進位在緊湊性和可讀性之間提供了良好的平衡。許多除錯器、十六進位編輯器和協定分析器以十六進位顯示資料,並提供可選的二進位檢視用於位元層級工作。
超越ASCII:Unicode與多位元組字元
標準ASCII僅涵蓋128個字元(7位元,代碼0–127),足以處理英文文字,但無法處理帶重音字元、非拉丁字母或表情符號。現代文字以Unicode編碼,定義了超過14萬個字元。此工具使用JavaScript內建的charCodeAt()方法,傳回每個字元的UTF-16編碼單元。對於基本拉丁字元,這等於Unicode碼位,也等於ASCII代碼。
對於非ASCII字元,如「é」(233)、「ñ」(241)、「中」(20013)或「😀」(128512,使用UTF-16代理對),二進位表示會更長或以不同方式分割。如果需要與UTF-8實際在磁碟上儲存位元組的方式一致的二進位編碼,需要先將字串進行UTF-8編碼,再將每個位元組轉換為二進位。對於大多數教育和編碼謎題目的,此處使用的逐字元方法是標準做法。
常見問題
›如何將文字轉換為二進位?
文字中的每個字元都轉換為其ASCII或Unicode數字代碼,然後以二進位(基數2)表示,補齊至8位元。例如:「A」= 十進位65 = 二進位01000001。「Hello」變為01001000 01100101 01101100 01101100 01101111。此工具自動處理轉換——只需在選擇「文字 → Binary」模式後,在左側框中輸入文字即可。
›如何將二進位轉換為文字?
選擇「Binary → 文字」模式並貼上二進位字串。二進位必須以8位元為一組(位元組)。如果用空格分隔,每個空格分隔的組就是一個位元組。如果連續(無空格),工具每8位元劃分為一個位元組。每個位元組從二進位轉換為數字,然後查找對應的ASCII/Unicode字元。
›為什麼每個二進位組是8位元?
一個位元組是8位元,ASCII使用7位元代碼(0–127)。按慣例,ASCII代碼儲存在帶前導零的完整8位元位元組中,使所有條目恰好為8個二進位位。這使解析明確無誤:每8位元 = 一個字元。一些較舊的表示使用7位元ASCII(省略前導零),但8位元編碼是現代標準。
›常見字元的二進位是什麼?
空格 = 00100000,「A」= 01000001,「a」= 01100001,「0」= 00110000,Enter/換行(LF)= 00001010,句點「.」= 00101110。規律很容易看出:大寫字母以010開頭,小寫字母以011開頭,數字以0011開頭。
›此工具能處理非英語字元嗎?
可以,對於Unicode碼位低於65,536的字元(大多數拉丁文、希臘文、西里爾文、CJK、阿拉伯文、希伯來文等字元)。每個字元轉換為其Unicode碼位的二進位表示。但由於127以上的字元需要超過8位元,會產生超過8位元的二進位組。對於表情符號和U+FFFF以上的字元,JavaScript會將其拆分為代理對,可能產生意外結果。
›交換按鈕有什麼作用?
交換按鈕將目前輸出(編碼時為二進位字串,解碼時為文字)移至輸入框,同時將模式切換為相反方向。這樣可以立即驗證往返轉換:編碼一些文字,點擊交換,檢查是否得到原始文字。也可用於探索二進位字串所編碼的內容。
›二進位和摩斯密碼一樣嗎?
不一樣。二進位使用恰好8位元(0和1)透過ASCII/Unicode數值表示每個字元。摩斯密碼使用可變長度的點和划表示字母和數字,序列基於英語中字母的頻率(如E和T這樣的常用字母有更短的代碼)。兩種系統是完全不同的編碼方案,儘管兩者都將文字表示為一系列符號。
›二進位與Base64有什麼區別?
二進位顯示每個字元的實際位元模式——儲存在記憶體中的原始位元。Base64是一種更高層次的編碼,使用64個可列印字元將任意二進位資料(任何檔案或位元組序列)轉換為安全的ASCII文字字串。Base64用於需要在只接受文字的環境中嵌入二進位資料時(如電子郵件附件或資料URI)。二進位表示用於人工檢查位元模式;Base64用於資料傳輸和儲存。
相關工具
最後更新: