二进制数1011010缩小两倍是______

具体算法过程!怎么都不对啊???
2025-05-20 15:17:59
推荐回答(4个)
回答1:

一般情况下不强调的时候,二进制数本身就理解为无符号数,数的小数点左移一位,就相当于数除以2,小数点右移一位,就相当于乘以2,此时1011 010B缩小后就是 0101 101B,数字串左边补0,向右移动一位,最右边的移出后舍弃,80X86汇编参考指令:
MOV AL,0101 1010B;最左边的0即符号位位置,此处表示无符号
SHR AL,1 ;结果:AL=0010 1101B
如果做为有符号数来理解的话,就是前面朋友回答的,要保证符号位不改变,也就是最左边一位不改变,最左边的数据右移是照样复制一个向右传,自己也不变.这样下来的结果就是1101 101B.80X86汇编参考指令:
MOV AL,1101 1010B ;最左边的1即符号位,这里是主动加的1
SAR AL,1 ;结果AL=1110 1101B
B表示二进制,是一个进制后缀.所以整个答案就看你自己怎么理解这个二进制数的含义了.

回答2:

1011010>>2;这样就代表缩小两倍。这>>是右移运算符,代表把这个二进制数整体向右移动,后边2即为移动两位,则得到0010110.1这样。即将小数点移动到百位,然后将小数点前的位数不足的补0。

回答3:

二进制数右移一位值变为原来的1/2,即缩小一倍,所以缩小2倍就是往右移2位:1011010往右移2位就变为10110,所以答案应该是10110。

回答4:

右移1位,并且在首位补充一个1,如果首位是0,则补充0,防止符号改变。