[开发工具] MPLAB X能定义一个32位长的变量吗?

[复制链接]
3387|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 ...

不同的编译器处理不同,稳妥起见,加一个吧。
yewuyi 发表于 2014-8-1 17:01 | 显示全部楼层
禹雨小鱼 发表于 2014-8-1 09:56
这个时候变量的长度就是32位的了?如果两个int变量相乘,结果不会溢出了吧?
例如这样不会有问题吧:
uns ...

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

在PICC上,这么写是可以的。
风清扬mxz 发表于 2015-1-4 11:24 | 显示全部楼层
呵呵  不用加的  编译器会自动强制转换
zong999 发表于 2015-5-24 21:17 | 显示全部楼层
结果是对的,不用加类型转换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

76

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部