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

在计算机中的内存地址往往都是用十六制来表示的,在学习如汇编、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乘法表那样,这样在遇到内存地址时就不会感到陌生了

posted on 2009-08-27 14:28 BoolYang 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/XiaoG/archive/2009/08/27/1555052.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值