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

CSAPP 習題 2.3 解答:單字節十進制/二進制/十六進制三制轉換表

     編輯:關於C語言

CSAPP 習題 2.3 解答:單字節十進制/二進制/十六進制三制轉換表

CSAPP 2.3 要求完成單字節(8 位)的三制轉換表。單字節正好用兩位十六進制表示,是理解字節級數據表示的最小單元。熟練掌握此表,能無縫銜接後續位運算、浮點數編碼、網絡字節序等主題。

標準轉換表(10 組樣本)

十進制二進制十六進制備註
00000 00000x00全零
1671010 01110xA7
620011 11100x3E
880101 10000x58'X' ASCII
550011 01110x37'7' ASCII
1361000 10000x88高位置 1(負數最高位)
2431111 00110xF3
800101 00000x50'P' ASCII
1721010 11000xAC
2311110 01110xE7

轉換技巧速查

  1. 十進制 → 二進制:除 2 取餘法,或拆解為 2 的冪次之和(如 167 = 128 + 32 + 4 + 2 + 1)。
  2. 二進制 → 十六進制:從右向左每 4 位一組,查表 0000→0 ... 1111→F。
  3. 十六進制 → 十進制:高位 × 16 + 低位(如 0xA7 = 10×16 + 7 = 167)。

ASCII 碼對照(常用字符)

字符十進制十六進制二進制
'0'480x300011 0000
'A'650x410100 0001
'a'970x610110 0001
空格320x200010 0000
換行100x0A0000 1010

實戰意義

  • 網絡協議解析:逐字節檢查魔數(如 PNG 89 50 4E 47)。
  • 位域操作:(byte & 0xF0) >> 4 取高 4 位。
  • 調試器看內存:直接識別 0xCC (未初始化)、0xCD (已釋放) 等填充模式。

建議隨機抽取 0~255 進行三制互轉練習,直到 5 秒內完成單字節轉換。

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