二進位計算機:掌握二進位算術、位元運算和二補數
二進位算術第一次看到時看起來很陌生:1010 + 0110 = 10000,沒有一欄超過 1,減法透過加上數字的負版本完成。但這正是你現在使用的裝置的每個處理器核心內每秒執行數十億次的精確算術。二進位計算機將這一隱藏層帶到表面——不僅僅將數字轉換為二進位,而是直接在基 2 中執行加法、減法、乘法和除法,包括溢位檢測、負數的二補數表示,以及從 8 位元到 64 位元的可設定位元寬度。無論你是在除錯低階韌體例程、教授電腦架構課程,還是計算網路組態的子網路遮罩,我們的免費線上二進位計算機都能以標準袖珍計算機無法提供的精確度和視覺清晰度處理二進位算術。
二進位計算器
免費 · 無需註冊
分步指南
以二進位、十進位或十六進位輸入運算元
以任何支援的表示形式輸入你的數字——二進位(1010)、十進位(10)或十六進位(A)。計算機為每個運算元同時顯示所有三種格式,因此你始終可以進行交叉參考。對於負數,切換二補數模式並選擇你的位元寬度(8、16、32 或 64 位元)。在 8 位元二補數中,-5 表示為 11111011,而不僅僅是「帶負號的 5」。工具自動計算正確的二補數編碼。
選擇運算和位元寬度
從加法、減法、乘法或除法中選擇,並設定計算的位元寬度。位元寬度很重要:兩個 8 位元數字相加產生 9 位元結果會觸發溢位,計算機以紅色高亮顯示。對於乘法,結果位元寬度加倍(兩個 8 位元輸入可以產生高達 16 位元的乘積)。計算機允許你以自然寬度或任何較寬的寬度檢視結果,這對於理解 CPU 如何處理進位和溢位旗標至關重要。
閱讀逐步分解
在每個結果下方,計算機以二進位逐欄顯示算術過程——就像十進位中的長加法或乘法一樣。對於加法:每欄的和(0+0=0, 0+1=1, 1+0=1, 1+1=10 帶進位)都被註解。對於使用二補數的減法:工具顯示減數如何被取負(翻轉位元,加 1),然後相加。除法直接在二進位中顯示長除步驟。這種詳細程度對學習和驗證來說是無價的。
使用技巧與最佳實踐
二進位加法規則:0+0=0, 0+1=1, 1+0=1, 1+1=10(寫 0,進位 1)。這與十進位加法相同,只是在 2 時進位而不是 10。在兩個 4 位元數字上練習,直到進位模式變得自動——然後更長的寬度只是相同模式的重複。
二補數是電腦表示負整數的通用方式。取負一個數字:翻轉所有位元(一補數),然後加 1。範例:8 位元中的 5 是 00000101。翻轉位元:11111010。加 1:11111011——這就是 -5。二補數的美妙之處:加法和減法使用完全相同的硬體電路,無需為負數做特殊處理。
溢位發生在結果無法放入目標位元寬度時。在 8 位元無符號中,255 + 1 = 0(環繞)。在 8 位元有符號中(-128 到 127),127 + 1 = -128(最負值)。CPU 為有符號溢位設定溢位旗標,為無符號溢位設定進位旗標——對相同位元的不同解釋有不同的旗標。
二進位中乘以 2 的 k 次方就是左移 k 位元:101 (5) << 2 = 10100 (20)。除以 2 的 k 次方就是右移 k 位元:10100 (20) >> 2 = 101 (5)。這就是為什麼 C 編譯器將 `x * 8` 替換為 `x << 3`——位元移動在硬體中比乘法快好幾個數量級。
按位元 AND 可以測試一個數是偶數還是奇數:number & 1 = 0 表示偶數,= 1 表示奇數。按位元 OR 可以將特定位元設定為 1:設定值的第 3 位元意味著 value | 0b1000 = value | 8。按位元 XOR 可以翻轉位元:value ^ (1 << n) 翻轉第 n 位元。這些操作是裝置驅動程式、嵌入式系統和高效能程式碼與硬體暫存器互動的方式。
在 32 位元算術中,無符號的範圍是 0 到 4,294,967,295;有符號(二補數)的範圍是 -2,147,483,648 到 2,147,483,647。為什麼不對稱?零佔用 2 的 32 次方個可能位元模式中的一個(000...000)在非負側,留下 2,147,483,647 個正值和 2,147,483,648 個負值。
網路子網路遮罩嚴重依賴二進位算術。像 255.255.255.0 這樣的子網路遮罩在二進位中是 11111111.11111111.11111111.00000000——正好 24 個 1 後跟 8 個 0。IP 位址與其子網路遮罩之間的邏輯 AND 提取網路部分。理解二進位元運算使 IP 子網路劃分變得直觀而非神秘。
常見問題解答
二進位算術不是一項深奧的技能——它是你編寫的每一行程式碼正下方的層。我們的二進位計算機透過逐步分解、二補數處理和 8 到 64 位元的溢位檢測使該層可見。無論你是在除錯、教學還是學習,都可以準確看到晶片在做什麼。
免費試用此工具 →open_in_new