
请在线的C语言专家帮忙一下 关于C语言大于32位位移问题!!!!!
我是win764位系统用dev-c++打开一段指令但是由于如图下面有一段大于32数值的以至于不能正常运行请问怎么修改如果正确一定追加...
我是win7 64位系统 用dev-c++打开一段指令 但是由于如图下面有一段大于32数值的以至于不能正常运行请问怎么修改 如果正确一定追加
展开
3个回答
2013-06-24
展开全部
试试用unsigned long long 代替unsigned long。
按照C标准,long的位数应该不小于int。而int要求是32位的。
从警告的内容来看,你的dev c++把long定义成32位的了。
你可以试试long long。这个按照标准,应该是64位的
按照C标准,long的位数应该不小于int。而int要求是32位的。
从警告的内容来看,你的dev c++把long定义成32位的了。
你可以试试long long。这个按照标准,应该是64位的

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
一般情况下,移位位数不能大于或等于被移位数类型的最大长度的。32位系统中,编译器在对移位为32时的处理上等同于移位为0,所以0x8BA3*temp>>32的效果就与0x8BA3*temp>>0一样。为避免这种情况,你把类似0x8BA3*temp>>32的表达式写成(0x8BA3*temp>>31)>>1就可以奏效了。你试试……
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大于等于被位移数位宽的移位会导致未定义的行为。良好编写的程序中必须避免。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询