首頁 電腦科學 二補數轉換計算 產生日期: 2026年7月20日 下午09:34 二補數轉換計算 輸入 轉換方向十進位 → 二進位位元寬度8 位元十進位數值-42二進位輸入11010110 電腦科學 二補數轉換計算 將有號整數轉換為二補數的二進位與十六進位表示,或將二進位字串解碼還原為有號十進位整數。支援 8、16、32、64 位元寬度。 轉換方向 十進位 → 二進位 二進位 → 十進位 輸入 輸入 位元寬度 8 位元 暫存器的位元數。位元寬度同時決定二進位輸出的長度,以及可表示的有號整數範圍:N 位元暫存器可存放 −2^(N−1) 至 2^(N−1) − 1 的整數。 十進位數值 待編碼的有號整數。對所選位元寬度 N 而言,最小可表示值為 −2^(N−1)。 結果 輸入數值即可顯示計算結果。 表示結果 二補數二進位 -42 的 8 位元 位元二補數編碼,以每 4 位元一組(半位元組)的方式顯示以便閱讀。 十六進位 相同位元組合以十六進位(基數 16)表示,前綴為 0x。每個十六進位數字對應 4 個二進位位元。 可表示範圍 8 位元 位元二補數暫存器可儲存的最小與最大有號整數。 分享 列印報告 重設 嵌入 嵌入這個計算機 預覽 將這段程式碼貼到您的網頁中即可顯示計算機。 複製程式碼 分享這個計算 開啟此連結的人都會看到您填入的數值。 複製連結 分享至 XFacebookLINE 電子郵件 最後更新:2026-06-28 二補數 二補數(two's complement)是數位電腦儲存與運算有號整數的標準編碼方式。x86、ARM、RISC-V、MIPS 等主流 CPU 架構的整數運算單元均採用此編碼,原因在於二補數允許以同一套加法電路執行減法,且零只有唯一一種位元組合。 編碼方式 N 位元的二補數暫存器共有 2N2^N 種位元組合。其中一半表示非負整數(00 至 2N−1−12^{N-1} - 1),另一半表示負整數(−2N−1-2^{N-1} 至 −1-1)。最高位元(最左側位元)作為符號位元:非負值為 0,負值為 1。 非負整數的編碼方式與無號二進位完全相同。例如,42 在 8 位元暫存器中的表示為: 4210=0 0 1 0 1 0 1 02=0x2A42_{10} = 0\!0\!1\!0\;1\!0\!1\!0_2 = \texttt{0x2A} 負整數的二補數計算 在 N 位元暫存器中,負整數 −n-n(n>0n > 0)的二補數編碼為: encoding of −n=2N−n(使用 N 位元)\text{encoding of } {-n} = 2^N - n \quad \text{(使用 } N \text{ 位元)} 以 8 位元表示 −42-42 為例:28−42=256−42=2142^8 - 42 = 256 - 42 = 214,以二進位分組顯示為: 21410=1101 01102=0xD6\begin{aligned} 214_{10} &= 1101\;0110_2 \\ &= \texttt{0xD6} \end{aligned}21410=110101102=0xD6 另一種常用的操作方法是:先對正數的二進位編碼逐位元取反(NOT),再加 1: 4210=0010 1010242_{10} = 0010\;1010_2 取反:1101 010121101\;0101_2 加 1:1101 01102=−42101101\;0110_2 = -42_{10} ✓ 兩種方法結果相同。 將二補數二進位還原為十進位 要將二補數位元字串轉換回有號十進位整數,先檢查符號位元: 若最高位元為 0,表示非負值,直接以無號二進位讀取即可:0111 11112=127100111\;1111_2 = 127_{10}。 若最高位元為 1,表示負值,將無號解讀結果減去 2N2^N:1101 01102=214101101\;0110_2 = 214_{10},故 214−256=−4210214 - 256 = -42_{10}。 各位元寬度的可表示範圍 符號位元將無號範圍一分為二。N 位元暫存器的有號整數範圍如下: 位元寬度最小值最大值8 位元−12812716 位元−32,76832,76732 位元−2,147,483,6482,147,483,64764 位元−9,223,372,036,854,775,8089,223,372,036,854,775,807 範圍不對稱(負值比正值多一個)是因為零佔用了非負側的一個位置,非負側僅剩 2N−1−12^{N-1} - 1 個嚴格正整數,負側則有 2N−12^{N-1} 個。 溢位 當運算結果超出可表示範圍時,數值會環繞(wrap around),此現象稱為溢位(overflow)。在 8 位元暫存器中,對 127 加 1 的位元運算為 0111 1111+0000 0001=1000 00000111\;1111 + 0000\;0001 = 1000\;0000,而 1000 00001000\;0000 正是 −128 的二補數編碼。硬體通常會設置溢位旗標,供軟體偵測並處理;底層位元運算本身為模數加法。 符號大小表示法與二補數的比較 符號大小表示法以一個位元記錄正負號,其餘 N−1 個位元存放絕對值。此方式有兩個缺點:①零有兩種編碼(正零 0000 00000000\;0000 與負零 1000 00001000\;0000),比較運算需要特殊處理;②異號數相加需要額外邏輯判斷大小與加減方向。二補數同時消除了這兩個問題:單一加法電路適用於所有情況,零也只有唯一一種位元組合(0000…00000\dots0)。 常見問題(FAQ)為什麼現代電腦使用二補數,而非符號大小表示法?符號大小表示法(sign-magnitude)以一個獨立位元記錄正負號,其餘位元存放絕對值。此方式存在兩個問題:零有兩種位元組合(正零與負零),且加法與減法必須使用不同的電路邏輯。 二補數同時解決了這兩個問題:零僅有唯一一種位元組合,而同一套二進位加法電路便能直接處理正數與負數的運算,無須任何特殊判斷。這是所有現代 CPU 採用二補數作為整數運算編碼的根本原因。 8 位元有號整數的可表示範圍為何?8 位元二補數整數共可表示 256 個數值,範圍為 −128 至 127。最小值 −128 的位元組合為 10000000,最左側的 1 代表負值;最大值 127 的位元組合為 01111111。範圍不對稱(負值比正值多一個)是因為零佔用了非負側的一個位置,因此非負側只剩下 2^(N−1) − 1 個嚴格正整數。 對任意 N 位元暫存器而言,可表示範圍為 −2^(N−1) 至 2^(N−1) − 1:16 位元為 −32,768 至 32,767;32 位元為 −2,147,483,648 至 2,147,483,647。 推薦的下一個 IPv4 位址表示法換算器 輸入點分十進位的 IPv4 位址,即可看到它的 32 位元整數、十六進位值與點分二進位表示。對於閱讀封包擷取、建立存取清單,以及理解位址如何儲存十分實用。 深入了解色彩格式轉換(HEX、RGB、HSL) 在 HEX、RGB、HSL 三種格式之間互相轉換色彩。輸入任一格式的數值,即可讀取另外兩種格式的等效色碼,方便直接貼入 CSS。 深入了解 200+ 計算機 · 10 種語言 · 完全免費 更多資料與編碼 二補數轉換計算文字轉二進位 / 十六進位 / ASCII 轉換器布隆過濾器容量計算器百萬畫素與列印尺寸計算機色彩格式轉換(HEX、RGB、HSL)色彩深度與每像素位元數計算器 +18 more Show less 串流頻寬計算器吞吐量(bps)換算器奈奎斯特取樣率計算器音訊檔案大小計算機浮點數精度計算機記憶體位址位元計算器資料傳輸時間計算機影片位元率與檔案大小計算機影像檔案大小計算機壓縮率計算機Base64 編碼開銷計算機CRC 校驗碼計算Git 儲存庫複製大小估算IEEE 754 浮點數位元分解PPI / DPI 像素密度計算器QR Code 資料容量查詢Unix 時間戳記轉換(Epoch ⇄ 日期)UTF-8 位元組大小計算機 其他電腦科學計算機 網路 子網路(CIDR)計算機每秒封包數計算器延遲預算計算器頻寬延遲乘積計算機CIDR 與子網路遮罩轉換器IP 位址範圍計算機IP 超網路計算機IPv4 位址表示法換算器IPv6 子網路計算機MTU 轉 MSS 計算機TCP 吞吐量計算機安全與加密 密碼強度(熵值)計算機雜湊碰撞機率計算機Chmod 權限計算機UUID 碰撞機率計算器演算法 夏農熵計算萊文斯坦距離計算器漢明距離計算機Big-O 成長率計算機Luhn 檢查碼計算器可靠性與儲存 服務可用性(SLA)計算機雲端儲存費用試算漢明碼 ECC 位元計算器複合可用性計算器API 速率限制計算器Cron 排程解析與下次執行時間MTBF、MTTR 與可用度計算器RAID 容量計算機效能與佇列 古斯塔夫森定律計算機利特爾法則計算器快取命中率與 AMAT 計算機阿姆達爾定律計算機愛爾蘭 C 人力配置計算器電池續航時間計算器AMAT(平均記憶體存取時間)計算Apdex 分數計算CPU 執行時間計算器IOPS 與吞吐量換算器M/M/1 佇列計算機M/M/c 佇列計算機 這個計算機對您有幫助嗎? 有幫助 需要改進 需要改進 我們可以如何改進這個計算機? 送出回饋 由 OneCalc 提供 ↗
最後更新:2026-06-28 二補數 二補數(two's complement)是數位電腦儲存與運算有號整數的標準編碼方式。x86、ARM、RISC-V、MIPS 等主流 CPU 架構的整數運算單元均採用此編碼,原因在於二補數允許以同一套加法電路執行減法,且零只有唯一一種位元組合。 編碼方式 N 位元的二補數暫存器共有 2N2^N 種位元組合。其中一半表示非負整數(00 至 2N−1−12^{N-1} - 1),另一半表示負整數(−2N−1-2^{N-1} 至 −1-1)。最高位元(最左側位元)作為符號位元:非負值為 0,負值為 1。 非負整數的編碼方式與無號二進位完全相同。例如,42 在 8 位元暫存器中的表示為: 4210=0 0 1 0 1 0 1 02=0x2A42_{10} = 0\!0\!1\!0\;1\!0\!1\!0_2 = \texttt{0x2A} 負整數的二補數計算 在 N 位元暫存器中,負整數 −n-n(n>0n > 0)的二補數編碼為: encoding of −n=2N−n(使用 N 位元)\text{encoding of } {-n} = 2^N - n \quad \text{(使用 } N \text{ 位元)} 以 8 位元表示 −42-42 為例:28−42=256−42=2142^8 - 42 = 256 - 42 = 214,以二進位分組顯示為: 21410=1101 01102=0xD6\begin{aligned} 214_{10} &= 1101\;0110_2 \\ &= \texttt{0xD6} \end{aligned}21410=110101102=0xD6 另一種常用的操作方法是:先對正數的二進位編碼逐位元取反(NOT),再加 1: 4210=0010 1010242_{10} = 0010\;1010_2 取反:1101 010121101\;0101_2 加 1:1101 01102=−42101101\;0110_2 = -42_{10} ✓ 兩種方法結果相同。 將二補數二進位還原為十進位 要將二補數位元字串轉換回有號十進位整數,先檢查符號位元: 若最高位元為 0,表示非負值,直接以無號二進位讀取即可:0111 11112=127100111\;1111_2 = 127_{10}。 若最高位元為 1,表示負值,將無號解讀結果減去 2N2^N:1101 01102=214101101\;0110_2 = 214_{10},故 214−256=−4210214 - 256 = -42_{10}。 各位元寬度的可表示範圍 符號位元將無號範圍一分為二。N 位元暫存器的有號整數範圍如下: 位元寬度最小值最大值8 位元−12812716 位元−32,76832,76732 位元−2,147,483,6482,147,483,64764 位元−9,223,372,036,854,775,8089,223,372,036,854,775,807 範圍不對稱(負值比正值多一個)是因為零佔用了非負側的一個位置,非負側僅剩 2N−1−12^{N-1} - 1 個嚴格正整數,負側則有 2N−12^{N-1} 個。 溢位 當運算結果超出可表示範圍時,數值會環繞(wrap around),此現象稱為溢位(overflow)。在 8 位元暫存器中,對 127 加 1 的位元運算為 0111 1111+0000 0001=1000 00000111\;1111 + 0000\;0001 = 1000\;0000,而 1000 00001000\;0000 正是 −128 的二補數編碼。硬體通常會設置溢位旗標,供軟體偵測並處理;底層位元運算本身為模數加法。 符號大小表示法與二補數的比較 符號大小表示法以一個位元記錄正負號,其餘 N−1 個位元存放絕對值。此方式有兩個缺點:①零有兩種編碼(正零 0000 00000000\;0000 與負零 1000 00001000\;0000),比較運算需要特殊處理;②異號數相加需要額外邏輯判斷大小與加減方向。二補數同時消除了這兩個問題:單一加法電路適用於所有情況,零也只有唯一一種位元組合(0000…00000\dots0)。 常見問題(FAQ)為什麼現代電腦使用二補數,而非符號大小表示法?符號大小表示法(sign-magnitude)以一個獨立位元記錄正負號,其餘位元存放絕對值。此方式存在兩個問題:零有兩種位元組合(正零與負零),且加法與減法必須使用不同的電路邏輯。 二補數同時解決了這兩個問題:零僅有唯一一種位元組合,而同一套二進位加法電路便能直接處理正數與負數的運算,無須任何特殊判斷。這是所有現代 CPU 採用二補數作為整數運算編碼的根本原因。 8 位元有號整數的可表示範圍為何?8 位元二補數整數共可表示 256 個數值,範圍為 −128 至 127。最小值 −128 的位元組合為 10000000,最左側的 1 代表負值;最大值 127 的位元組合為 01111111。範圍不對稱(負值比正值多一個)是因為零佔用了非負側的一個位置,因此非負側只剩下 2^(N−1) − 1 個嚴格正整數。 對任意 N 位元暫存器而言,可表示範圍為 −2^(N−1) 至 2^(N−1) − 1:16 位元為 −32,768 至 32,767;32 位元為 −2,147,483,648 至 2,147,483,647。