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

CSAPP 2.18 習題解析:32位補碼十六進制轉十進制

     編輯:關於C語言

CSAPP 2.18 習題解析:32位補碼十六進制轉十進制

將給定 32 位補碼十六進制數轉換為十進制有符號整數:

32位補碼十進制
0x1b8440
0x1420
0xFFFFFE58-424
0xFFFFFE74-396
0x4468
0xFFFFFEC8-312
0x1016
0xC12
0xFFFFFEEC-276
0x2032

轉換方法

  1. 高位為 0(0x0~0x7FFFFFFF):直接按十六進制轉十進制(正數)。
  2. 高位為 1(0x80000000~0xFFFFFFFF):取反加一得絕對值,加負號。
    例:0xFFFFFE58 → 取反 0x000001A7 → +1 = 0x1A8 = 424 → -424。
    或公式:值 = 十六進制值 - 2^32(如 0xFFFFFE58 - 0x100000000 = -424)。

熟練掌握 32 位補碼與十進制互轉,是逆向分析、嵌入式調試、網絡協議解析的基本功。

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