C语言中的右移一位是不是应该除以2? 我来答 1个回答 #热议# 空调使用不当可能引发哪些疾病? 帐号已注销 推荐于2019-09-30 · TA获得超过917个赞 知道答主 回答量:0 采纳率:0% 帮助的人:0 我也去答题访问个人页 关注 展开全部 不是C语言的有符号整数向右移位运算不等同于除以2的某次幂如(-1)/2和(-1)>>1,前者的结果一般是0,后者一般是-1,所以在C语言中,负数向右移动1位并不等同于除以2。解决的方法是:当除数是2的N次幂时,x/(2^N),可以用移位操作(x + 2^N - 1) >> N来代替(x + 2^N - 1须小于0,^是乘方操作)在C语言中,-100/8=-12,而-100>>3=-13,两者不相等,而用(-100+7)>>3代替则相等。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2022-11-15 C语言中的右移一位是不是应该除以2? 2022-12-14 C语言中,与2乘左移,与2除右移,这个是啥意思,求详细解释!!! 2019-11-23 C语言中的右移一位是不是应该除以2 7 2022-11-16 C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么? 2019-10-29 C语言中,与2乘左移,与2除右移,这个是啥意思,求详细解释!!! 2 2019-11-23 C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么? 14 2020-04-09 C语言中,与2乘左移,与2除右移,这个是啥意思,求详细解释!!! 4 更多类似问题 > 为你推荐: