匿名神偷 发表于 2016-2-1 18:11:29

为何1230*16=19020?

段地址为1230,偏移地址为00c8 那经过运算就是123c8的20位物理地址
具体:1230*16=12300
然后:12300+00c8=123c8

以上是我从http://bbs.fishc.com/forum.php?mod=viewthread&tid=7043&page=1&authorid=106491
Copy下来的疑惑{:5_104:}

兰陵月 发表于 2016-3-9 23:30:16

本帖最后由 兰陵月 于 2016-3-9 23:31 编辑

楼主,您可能没有仔细看书,当然也是对方没有表达清楚。
1230*16=19020,单纯从16进制的计算来说,这是没错的。
但是您所引用的笔记处的意思不是这样的。
其实这里的16是十进制的16,换成十六进制就是10.
所以正确理解应该是1230*10(这里两个数字都是十六进制)。
这样你就能得出
1230*16=12300
上面:
1230是段地址,因此是十六进制的;
16是十进制的16,相当于十六进制的10;
12300是十六进制的。

不知道这样解释是否能理解。
其实你只要记住*16,相当于左移1位即可。

匿名神偷 发表于 2016-3-11 13:03:39

兰陵月 发表于 2016-3-9 23:30
楼主,您可能没有仔细看书,当然也是对方没有表达清楚。
1230*16=19020,单纯从16进制的计算来说,这是没 ...

明白了 谢谢兰陵月

兰陵月 发表于 2016-3-11 13:55:57

匿名神偷 发表于 2016-3-11 13:03
明白了 谢谢兰陵月

多多交流~~我是第二次重新学习汇编,力求在基础知识上再上升一个高度。

adas 发表于 2016-5-20 17:21:41

你只要知道物理地址=段地址*16+偏移地址就懂了那个16是10进制换成16进制就是10咯 这题不难

zhouxcpython 发表于 2016-5-21 22:51:55

{:5_92:}太棒了
页: [1]
查看完整版本: 为何1230*16=19020?