首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

計算機基礎:文件存儲形式、編碼與手寫 BMP 入門指南

     編輯:程式設計疑難解答

核心觀念釐清

  • 物理層面:所有文件在磁碟/記憶體中均以 二進制位元組(Byte)序列 存儲。
  • 人類可讀層面:為方便閱讀/編輯,工具(如 Notepad++、WinHex)將位元組以 十六進制 或 文字編碼(ASCII/UTF-8 等) 呈現。
  • 文本 vs 二進制文件:
    • 文本文件:位元組序列對應字符編碼,記事本可讀。
    • 二進制文件(BMP、EXE、ZIP…):位元組無固定字符對應,需專用編輯器(UltraEdit, WinHex, 010 Editor)逐位元組操作。

為何記事本無法手寫 BMP?

記事本按字符編碼讀寫,無法輸入非打印字符(如 0x00、0xFF),且會自動換行、加入 BOM,破壞二進制結構。必須使用十六進制編輯器逐位元組寫入。

手寫 BMP 實戰步驟

  1. 查閱 BMP 文件格式規範(文件頭、資訊頭、調色盤、像素數據)。
  2. 用十六進制編輯器建立新文件,按規範填寫每個欄位(小端序)。
  3. 例如 2×2 像素 24-bit BMP 關鍵數值:
偏移  值(hex)          說明
00    42 4D            'BM' 簽名
02    36 00 00 00      文件大小 54 字節
0A    36 00 00 00      像素數據偏移 54
0E    28 00 00 00      DIB 頭大小 40
12    02 00 00 00      寬 2
16    02 00 00 00      高 2
1A    01 00            平面數 1
1C    18 00            24-bit
...   ...              像素數據(每行 4 字節對齊)
  1. 存檔為 test.bmp,用圖片查看器驗證。

系統性學習資源推薦

  • 📖 《編碼的奧秘》—— 從摩斯密碼到 CPU,通俗講透「編碼」本質。
  • 📖 《計算機系統導論》(CSAPP)第 2 章—— 數據表示、位元組序、浮點數標準。
  • 🛠 實戰工具:010 Editor(含 BMP 模板)、WinHex。
  • 🔍 關鍵術語:位元組序、字符編碼、文件簽名、魔數、對齊填充。

掌握「位元組視角」看文件,是逆向工程、協議分析、底層開發的入門鑰匙。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved