永发信息网

C语言中的右移一位是不是应该除以2?

答案:1  悬赏:50  手机版
解决时间 2021-03-19 19:06
C语言中的右移一位是不是应该除以2?
最佳答案
不是
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代替则相等。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
肉粉色皮草配白色蕾丝包臀裙配白色裤袜配什么
旺鑫电器商行怎么去啊,有知道地址的么
五九年正月初五晚八点生的生辰八字怎样?
怎样计算车辆损失险保费?
雷克沙CF卡如何鉴别真伪
和田碧玉吊坠价格
宝迪汽车美容护理地址在什么地方,想过去办事
集成显卡是在哪,什么样的,他是在CPU里么
老陕北羊肉面在哪?
小调可以转到关系大调的属调和下属调吗?包括
让我们拉一个圈圈英文歌
求一本主角突然获得异能的都市言情小说
安徽来安县大英镇的公路怎么就那么糟呢?时间
继承者们》中金叹在加州上的大学是哪所大学啊
跟外国人聊天的APP介绍几个,要官网的下载多
推荐资讯
Jim is the ______ (two ) boy.
求汕头潮阳好一点的律师,刑事案件,急
有谁三十号科目三榆关考试的
168老北京火锅店在哪里啊,我有事要去这个地
随着经济与科技的不断进步,手机电视作为全新
金牛区人民医院-地下停车区我想知道这个在什
折原一TXT全集 不尽感谢
科技与未来的历史小论文。只说一下思路,不要
以福州看深圳,广州,哪个更近西北方向范围?
如何在家里练腿力?
工资3000元,给领导送礼1万元划算吗
伊春十大微整形培训学校哪家好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?