用8位补码表示整数126的机器码,算数右移一位厚的结果是,
问题描述:
用8位补码表示整数126的机器码,算数右移一位厚的结果是,
126的二进制是01111110,所以-126的补码是126的二进制码“取反加1”,
为10000010.
算术右移一位,因为左边的符号位为1,所以左边补上1,得到11000001,符号位为1,是某负数的补码,将其“减1取反”,得到其绝对值的二进制码为00111111,即63,所以该负数为-63.
因为左边的符号位为1,所以左边补上1.这句话中怎么理解!
答
原来:
10000010 = -126
算术右移后:
11000001 = -63
右移,相当于除以2.
而算术右移,它还能够保持符号不变.
原来是1,就在左边补上1,就能保证仍然是负数.
原来是0,就在左边补上0,就能保证仍然是正数.
因此,算术右移,适合于针对《有符号数》除以2,