完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我试图弄清楚基本的整数除法是怎么回事,它似乎得到一个无符号的无符号强制转换……片段:/*******/**文件作用域变量**/易失性静态无符号int sw_filter_size=1;易失性静态int32_t过采样[4];易失性静态int32_t saved_.[4];.../**函数**/overamples[0]=-3400;sw_filter_size=2;...saved_.[0]=overamples[0]/sw_filter_size;/*********/“saved_value[0]”中的代码被计算为无符号数……我是否忘记了一些关于INT/UINT如何评估的基本知识?或者这是编译器中的一个bug吗?
|
|
相关推荐
9个回答
|
|
什么版本的编译器和MPLABX你确定代码是错误的,而不仅仅是MPLabX显示的方式?
|
|
|
|
C标准说有符号和无符号整数之间的操作产生无符号结果。如果使sw_filter_size有符号,那么结果也应该有符号。
|
|
|
|
我有这种恐惧,但不确定…
|
|
|
|
编译器/平台是特定的吗?我1/2路记得7年前能做到这一点…虽然我在同一个项目上做VHDL和C,但可能是在FPGA
|
|
|
|
这就是所谓的C99文件的要求,它是一个C标准。大多数编译器都会遵守。
|
|
|
|
通常不使用“较大”的类型。例如,对于long+unsigned in t,无符号in t被转换为long,它被签名,结果被签名。在OP的情况下,如果“unsigned in t”的大小与“int32_t”相同,那么int32_t将被转换为unsigned。我不确定为什么OP在这里使用“int”,因为它的大小是特定于平台的,而INT32是不特定的。
|
|
|
|
对于xc32,未签名int为32位,大小与INT32×t相同,因此该操作是未签名的。
|
|
|
|
感谢所有的回复,我想这就是我以前的地方,很可能是7年前被Unt88t分割的。我已经确认,通过UTI1616T划分的因特32,在XC32编译的PIC32 MX上产生一个符号值。感谢大家,特别感谢@
|
|
|
|
这一点与混合签名和无符号无关。这里发生的是uint16_t(它可能是一个“无符号的.”)作为整数提升的一部分被提升为“int”,并因此被签名。即使UINT16YT除以UINT16YT也会发生这种情况:结果是一个已签名的int,而不是UINT16YT。
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
778浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
677浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 10:54 , Processed in 1.488353 second(s), Total 91, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号