算术移位和逻辑移位
答:移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。例: a的值是八进制数113755:a:1001011111101101 (用二进制形式表示)a>>1: 0100101111110110 (逻辑右移时)a>>1: 1100101111110110 (算术右移时)在有些系统中,a>>1得八进制数045766,而在另一些系统上可能得到的是145766。Turbo ...
答:这是要看,是算术移位,还是逻辑移位。两者是有区别的。算术移位,移位的时候符号位保持不变的。逻辑移位,移位的时候是全部都移位的,符号位也移的。另外,特别要注意,补码的移位,如果是负数,左移的时候,要右舔0;右移的时候左舔1。
答:比如,在汇编语言中,对于算术右移,如果最高位为1,则补1,否则补0, 如将10000000算术右移7位,应该变成11111111,而逻辑右移7位,则不考虑符号位,变为00000001,这点就是算术右移和逻辑右移的区别。在汇编中,可以用算术右移来进行有符号数据的除法。把一个数右移n位,相当于该数除以2的n...
答:,是算数右移,如果ACC中符号位为11代表真值负数,按照负补数算术右移规则对数值位右移,数值首位补1,若为正则数值首位补0,末尾同样进入MQ中符号位。对于原码除法,是逻辑左移,ACC中存被除数,X中存除数,MQ中存商,有n轮移位,n+1或n+2次加法 对于补码除法,也是逻辑左移。
答:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。...
答:我是这么理解的,也不知道 对不对, 循环右移就是说右边被移出去的那一位补到左边去。算术和逻辑的区别在于考不考虑符号位,比如1111 ,在算术来讲它是一个负数(最高位是1的是负数),不管你怎么移,它应还是一个负数,也就是说算术移位要保证符号位不变。因为在算术移位中移位被认为是除以2,...
答:(3)数据传送指令。这是一种常用的指令,用以实现寄存器与寄存器,寄存器与存储单元以及存储器单元与存储器单元之间的数据传送,对于存储器来说,数据传送包括对数据的读(相当于取数指令)和写(相当于存数指令)操作。(4)移位操作指令移位操作指令分为算术移位\逻辑移位和循环移位三种,可以实现对操作数左移或...
答:SHL/SAL一样:逻辑/算术左移,最高位进到CF,最低位补0;SHR:逻辑右移,最低位进到CF,最高位补0;SAR:算术右移,最低位进到CF,最高位不变;ROL:循环左移,最高位进到CF的同时补到最低位;ROR:循环右移,最低位进到CF的同时补到最高位;RCL:带进位循环左移,最高位进到CF的,同时...
答:1110 1110,反过来是 (1110 1101 + 1)->0001 0010,就是 -18 了。\x0d\x0a\x0d\x0a如果数据最高位和符号位不同的话,说明这个数字的绝对值已经超过 64 了,那么左移一位后必然溢出。\x0d\x0a所以一个【有效的】左移最高位和数据最高位必然一致。故算术左移和逻辑左移一样。
答:汇编语言,是人们研究出来,用来代替机器码编程的。现在用的 80x86 汇编语言的编译软件,出自微软公司。当年,比尔·盖茨,还十分年轻,手下的程序员,牛,跳槽也是常事。这个人,想用 SHL,那个人,说用 SAL。盖茨不得罪人,和稀泥,两个词,就都流传下来了。像乔布斯,当年,就太强势了,反而,被...
网友评论:
贲胜19328476089:
算术移位与逻辑移位有什么不同之处,最好能给出一个例子演示一下, -
21035长善
:[答案] (转自romway的博客,自己写这么多太累!)什么叫逻辑移位和算术移位 1)算术移位 当乘数或除数是2n时,算术移位用来快速地完成对整数进行乘法或除法的运算.算数左移n位相当于乘上2n,执行方法是把原来的数中每一位都向...
贲胜19328476089:
急急急!!!算术移位与逻辑移位有什么区别?(计算机语言里面的) -
21035长善
: 逻辑移位(不管是左移位还是右移位) 都是空缺处补0 算术移位要保证符号位的不改变(逻辑左移位补0, 逻辑右移位看符号位)
贲胜19328476089:
算术位移运算符和逻辑位移运算符有什么区别? -
21035长善
: 在C语言中,涉及位移的运算符有2个,>>表示右移,<<则表示左移. 而汇编指令中,SHL和SHR表示逻辑左移和逻辑右移,SAR和SAL表示算术左移和算术右移. 其中,逻辑左移和算术左移都是寄存器二进制位整体向左移动,并在右边补0. 而右移则不同,逻辑右移是整体向右移,并在左边补0,而算术左移则是根据原符号位的值补与其相同的值. 根据C标准,如果在位移运算符左边的变量是有符号数,如int,char,short等,编译产生的汇编指令是算术位移指令,如果该变量是无符号数,如unsigned int,unsigned char等,编译产生的汇编指令则是逻辑位移指令.
贲胜19328476089:
算术左移、逻辑左移、算术右移、逻辑右移有什么不同?算术左移:末尾添0;逻辑左移:末尾添0算术右移:左端最低位填充;逻辑右移:左端添0为什么会... -
21035长善
:[答案] 算术左移和算术右移主要用来进行有符号数的倍增、减半;逻辑左移和逻辑右移主要用来进行无符号数的倍增、减半.记住这个就可以了.算术左移和算术左移虽然方式是一样的,但他们表示的移位后数的范围是不一样的,有符号数...
贲胜19328476089:
汇编程序的逻辑位移与算术位移有何本质上的区别? -
21035长善
:[答案] 汇编语言中的逻辑右移(SHR)是将各位依次右移指定位数,然后在左侧补0,算术右移(SAR)是将各位依次右移指定位数,然后在左侧用原符号位补齐.
贲胜19328476089:
逻辑位移 算术位移 的概念 -
21035长善
: 逻辑右移最高位补0,最低位进入CF,相当于每移一位除以2,一般对于无符号数使用 如:133/8=16余5 MOV AL,10000101B MOV CL,03H SHR AL,CL AL=10H=16 算术右移最高位(即符号位)保持不变,而不是补0最低位进入CF.相当于每移一位除2,一般对于有符号数使用 -128/8 MOV AL,10000000B MOV CL,03H SAR AL,CL AL=0F0H=-16 1100为000011000正数,逻辑右移 算术右移是一样的为00000110 11001000逻辑右移为01100100 11001000算术右移为11100100
贲胜19328476089:
移位指令的详述 -
21035长善
: 一般格式 移位操作符(如SHR) OPR,CNT. 其中OPR用除立即数外的任何寻址方式.移位次数由CNT决定,在8086中可以是1或CL,CNT为1时只移一位;如果需要移位的次数大于1时,需要先将移位次数存入CL寄存器中,而移位指令中的CNT...