打印
[开发工具]

MPLAB X能定义一个32位长的变量吗?

[复制链接]
2985|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
禹雨小鱼|  楼主 | 2014-8-1 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚开始使用PIC16F1823单片机,在程序中的计算有结果超过了16位长,能不能定义一个32位长的整型变量用来计算。求教!
沙发
yewuyi| | 2014-8-1 09:52 | 只看该作者
能。

例如:unsigned long int    xxx=0;

使用特权

评论回复
板凳
禹雨小鱼|  楼主 | 2014-8-1 09:56 | 只看该作者
yewuyi 发表于 2014-8-1 09:52
能。

例如:unsigned long int    xxx=0;

这个时候变量的长度就是32位的了?如果两个int变量相乘,结果不会溢出了吧?
例如这样不会有问题吧:
unsigned int a = 1000;
unsigned int b = 1200;
unsigned long int c;
c = (a * b);
结果是对的么?
a或者b之前要不要加类型转换?

使用特权

评论回复
地板
kseeker| | 2014-8-1 10:09 | 只看该作者
禹雨小鱼 发表于 2014-8-1 09:56
这个时候变量的长度就是32位的了?如果两个int变量相乘,结果不会溢出了吧?
例如这样不会有问题吧:
uns ...

不同的编译器处理不同,稳妥起见,加一个吧。

使用特权

评论回复
5
yewuyi| | 2014-8-1 17:01 | 只看该作者
禹雨小鱼 发表于 2014-8-1 09:56
这个时候变量的长度就是32位的了?如果两个int变量相乘,结果不会溢出了吧?
例如这样不会有问题吧:
uns ...

不加就要靠编译器默认的强制转换,但为了阅读和少犯错,一般都建议代码工写全了,自己加上强制类型转换,尽量减少出错的可能 。

在PICC上,这么写是可以的。

使用特权

评论回复
6
风清扬mxz| | 2015-1-4 11:24 | 只看该作者
呵呵  不用加的  编译器会自动强制转换

使用特权

评论回复
7
zong999| | 2015-5-24 21:17 | 只看该作者
结果是对的,不用加类型转换。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

76

帖子

1

粉丝