第一步化为2进制
512B=0101 0001 0010 1011
第二步,左移2位,最左侧补上两个0,第1位变第3位,第2位变第4位,第3位变第5位,以此类推
0101 0001 0010 101100
第三步从新分组,从右边开始4位一组,最左边补数个0,凑齐一组,在每一组下面写对应16进制数
0001 0100 0100 1010 1100
1 8 4 A C
所以512B左移2位为184AC
我学汇编语言时,位移运算可能考虑溢出,如果考虑溢出,最高位抹去变为84AC,同时标志寄存器中表示溢出的那一位变为1
(一定注意第三步要从右边开始分组,不能从左边)
(如果16进制数是非整数,那么分组要从小数点两边开始分组,运气不好的话,最低位最高位要同时补0)
位移运算还有另一种理解,左移n为相当于乘以2的n次方(当然是十进制的2的n次方),右移为除法,同理.手头有16进制计算器的话,直接算16进制的乘法运算.笔算也行,如果您会16进制乘法的话.当然先要把2的n次方化为16进制.可以先变2进制(1后面n个0),再分组化成16进制.