• 复习:十六进制转换成十进制算法


    在计算机中的内存地址往往都是用十六制来表示的,在学习如汇编、windbg之类的技术时也往往被这些十六进制数据搞晕,不便于学习,所以我们要练就一身好本领:快速把十六进制数转换为我们容易理解的十进制数

    计算方法如下:

    设H为待转化的十六制数,H的位数为N,H[i](0<=i<=N)为H中的各数字(如:H=0x89AF 的N为3,H[0]=F,H[1]=A,H[2]=9,H[3]=8),转换为十进制的数为:

    D = H[0]*16^(0) + H[1]*16^(1) + … + H[N]*16^(N) = H[0] + H[1]*16 + … + H[N]*16^(N)

    示例:

    0x12 = 2 + 1*16 = 18

    0xAB = B + A*16 = 11 + 10*16 = 171

    0x8A = A + 8 * 16 = 10 + 8*16 = 138

    0x121 = 1 + 2*16 + 1 * 256 = 289

    0xABC = C + B*16 + A*256 = 12 + 11*16 + 10*256 = 2748

    0x8F9 = 9 + F*16 + 8 * 256 = 9 + 15*16 + 256 * 8 = 2297

    为了快速计算、心算,需要记住一下常见的乘法计算,如:

    16*16 = 256,15*16 = 240,14*16 = 224,。。。

    1*256 = 256,2*256 = 512,3*256 = 768,4*256 = 1024,。。。

    16^2 = 256,16^3=4096

    就像记99乘法表那样,这样在遇到内存地址时就不会感到陌生了

  • 相关阅读:
    maven安装
    删掉centos原有的openjdk并安装sun jdk
    搭建私有仓库Harbor
    什么是Docker
    总结docker常用命令
    MySQL如何修改密码
    VMware vSphere
    安装Esxi 6.5
    Linux安装python3.6
    提高Linux运维效率的30个命令行常用快捷键
  • 原文地址:https://www.cnblogs.com/XiaoG/p/1555052.html
Copyright © 2020-2023  润新知