首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

計算機存儲基礎:從比特到 GB、二進制/八/十六進制轉換與程序員幽默

     編輯:關於C語言

程序本質上是在操作內存中的 0/1 模式。理解存儲單位、二進制表示、補碼、進制轉換,是寫出高效、無 Bug 代碼的內功。本文從硬件邏輯出發,層層遞進講解 Bit/Byte/KB/MB/GB、二進制算術、八/十六進制互轉,最後送上經典程序員笑話驗證學習成果。

存儲單位階梯

單位符號換算物理含義
比特b / Bit1單個電路元件:高電平(1)/低電平(0)
字節B / Byte8 Bit寻址最小單位,存 1 個 ASCII 字符
千字節KB1024 Byte2¹⁰
兆字節MB1024 KB2²⁰
吉字節GB1024 MB2³⁰
太字節TB1024 GB2⁴⁰

1 GB 內存 ≈ 8×1024³ ≈ 85.9 億個電路元件。

二進制:計算機的母語

  • 基數 2,符號 {0,1},逢二進一,借一當二。
  • 位權展開:(1101)₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 13。
  • 小數部分:負次方權。(110.11)₂ = 1×2² + 1×2¹ + 0×2⁰ + 1×2⁻¹ + 1×2⁻² = 6.75。

二進制基本運算表

運算規則示例
加法0+0=0, 0+1=1, 1+0=1, 1+1=10 (進位)101 + 11 = 1000
減法0-0=0, 1-0=1, 1-1=0, 10-1=1 (借位)1000 - 11 = 101
乘法0×0=0, 1×0=0, 0×1=0, 1×1=1同十進制列竖式
除法0÷1=0, 1÷1=1試商法

八進制與十六進制:二進制的緊湊書寫

3 位二進制 ↔ 1 位八進制;4 位二進制 ↔ 1 位十六進制。極利於位操作、內存地址、權限掩碼閱讀。

進制基數符號C 語言前綴示例 (十進制)
八進制80-7003072 = 3×8³+0×8²+7×8¹+2 = 1594
十六進制160-9, A-F (10-15)0x/0X0xE3F9 = 14×16³+3×16²+15×16¹+9 = 58361

快速互轉技巧

  • 二進制 → 八/十六:從右向左每 3/4 位分組,直接查表。
  • 八/十六 → 二進制:每位展開為 3/4 位二進制。
  • 十進制 ↔ 二進制:除 2 取餘 (整數) / 乘 2 取整 (小數);或借助計算機/編程語言 bin()/hex()。

程序員專屬笑話:看懂即入門

A:「哥們,借點錢?」
B:「成,多少?」
A:「一千行不?」
B:「咱倆誰跟誰!給你湊個整,**1024**,拿去吧。」

正解 D:正如 100 是 10² (十進制整數次方),**1024 = 2¹⁰ 是二進制整數次方**,在程序員眼中才是真正的「整數」。選 A/B/C 的請補課!

給開發者的實用建議

  • 位掩碼、標誌位、權限碼**優先用十六進制** (如 0xFF、0x7FFFFFFF)。
  • 文件權限 chmod 0755、0644 用八進制。
  • 補碼負數十六進制高位全 F (如 -1 = 0xFFFFFFFF),識別極快。
  • 調試器內存窗口默認顯示十六進制,熟練讀寫可大幅提速。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved