十六进制乘法的问题—

来源:百度知道 编辑:UC知道 时间:2024/06/30 17:45:51
正在看汇编语言

遇到问题拉 希望高手解救 千万别复制答案

书上原话是“一个十六进制数左移一位相当于乘以16”

那比如8H左移一位 应该等于多少啊???

具体怎么算的!!!!!
谢谢各位的回答,可是
书上原话[16进制数据左移一位,相当与乘16]
那么比如下面这样
左移位数 二进制 十六进制
0 10B 2H
1 100B 4H
我知道了可以先转二进制左移一位再转十六进制这么算……
可是2H乘16怎么算出等4H的??

左移一位:就是在原来的数后面加一个0。
在十进制中就是:个位变十位;十位变百位;百位变千位;等等,最后加个0做个位。
1左移一位就是10
2左移一位就是20
15左移一位就是150


也就是左移一位之后变成了原来的10倍,这个10其实是10dec,就是十进制的10
同样:在十六进制中左移一人位就会变成原来的10h倍,也就是16倍。(16是十进制的)
可以推广到n进制:n进制数左移一位后,变成原来的10(n)倍,也就是原来的n倍

请看最后一句:二进制数左移一位,变成原来的2倍。哪里来的2h*16?
你要搞清楚:你说的左移是在笔算时左移,还是在寄存器中左移。在寄存器中左移是二进制左移,不是16进制左移。

十六进制左移一位相当于二进制左移4位,二进制左移一位相当于乘2,所以十六进制左移一位相当于乘16
具体8h左移一位就变成80h,你算一下80h的十进制为96,是不是8的16倍

你把原话都抄错

左移四位才等于乘于16

0x08h << 4 = 0x08h * 2^4 = 0x08h * 16 (即 0x10h) => 0x80h (128)