完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
你好,我正在尝试下面的简单代码,好像不起作用!我应该得到'x'作为0x000 010002,但是,我看到x为0x000 000 02.这里出了什么问题?
|
|
相关推荐
15个回答
|
|
|
如果你希望它按照你所期望的那样工作,你需要声明Z为“长”。“签名int”可以存储从32768到32767的数字,而0x800 1在这个范围之外,因此被解释为-32767。
|
|
|
|
|
|
这样试试:
|
|
|
|
|
|
这里不需要强制转换,Y将转换为X类型。
|
|
|
|
|
|
我同意寺院,我似乎不能得到一个工作代码,这不应该那么困难!
|
|
|
|
|
|
难道' N '不应该晋升为签约长吗?
|
|
|
|
|
|
我想你的问题在别处。显示更多的代码和使用的值;你所期望的和你得到的。
|
|
|
|
|
|
为了让生活变得简单,我考虑了2个数字,并决定把它们平均化,下面是我的完整代码。
|
|
|
|
|
|
x是一个带符号的长int,这意味着赋值x=0x8001将x的值设置为+32769NOT-32766。要将x的值设置为-32767需要x=0xFFFF8001。
|
|
|
|
|
|
这就提出了一个问题:为什么要把十六进制值分配给有符号整数?这没有任何意义,至少部分原因是你的困惑。如果你想分配- 32767,分配- 32767。
|
|
|
|
|
|
我认为OP认为在极限下更容易设定价值。无论如何,It是16位宽,位15为符号位,符号长为32位宽,位31为符号位。
|
|
|
|
|
|
0x8001是一个正数,它是32769小数。它不适合于“int”,所以当你把它赋给“有符号int”(它是-32768到32767)时,它被重新解释为-32767。它适合于长数,所以当你赋给z时,它仍然是32769。当你把它们加起来时,你会得到(-32767)+(32769)。=2将它们转换为“signed long”不会改变任何内容,因为转换为相同signed-ness的大变量不会改变值。虽然转换为“签名int”会改变结果,因为Z将被重新解释为-32767。
|
|
|
|
|
|
我相信我的密码是正确的。我使用十六进制值的信念是,uC足够聪明,可以考虑一个变量,如果声明为int-MSB表示符号位…它可能是聪明的,但是如果我使用十进制而不是十六进制,我观察我所期望的
|
|
|
|
|
|
我的底线是:Windows程序员(和其他非嵌入式专家)倾向于认为int数据类型变量总是32位。显然你不能指望这一点。(这里有一个小程序员的幽默。)了解了?不能指望它。不明白吗?哦,嗯……)嗯……你可以查阅XC8手册,或者你可以打印size of()ints、long ints等。或者……当大小问题时,使用标准C语言整数数据类型
|
|
|
|
|
|
正如我指出的,你的错误是对于一个长的int 0x800 1没有设置MSB!这必须是0x8XXXXXXX来设置MSB并指示一个负值。并不是“uC足够聪明”或者不理解MSB是符号(它确实是),而是您没有设置MSB!如前所述,在使用负数时使用小数,COMPILER足够智能,并且更明显地说明了您的意图。
|
|
|
|
|
|
先生们,你们都用非常简单的东西把事情搞得一团糟。删除所有尝试的铸件,编译器就能自己纠正:
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
454 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3529 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:34 , Processed in 1.006491 second(s), Total 100, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1912