OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6140|回复: 6

uint64_t定义的数据有问题

[复制链接]

17

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
296
金钱
296
注册时间
2015-4-29
在线时间
26 小时
发表于 2015-11-14 15:30:46 | 显示全部楼层 |阅读模式
5金钱

请问一下,uint64_t不是64位吗,为什么uint64_t定义的变量像32位变量一样在一条程序时加到第10位时会出错。
但是uint64_t定义的变量分成两个32位数据计算或直接赋为1122334455667788就没有问题



 





最佳答案

查看完整内容[请看2#楼]

回复【5楼】依韵: --------------------------------- 但是等号右边那一串式子里全部都不是uint64_t类型,全部都没有超过32位。 所以计算时是按32位计算的,结果也是32位,溢出的都丢弃了。除非表达式中至少有一项是64位的。 所以你要把中任意一项强制转换为64位,比如把最后那个10给转了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2015-4-14
在线时间
0 小时
发表于 2015-11-14 15:30:47 | 显示全部楼层
回复【5楼】依韵:
---------------------------------
但是等号右边那一串式子里全部都不是uint64_t类型,全部都没有超过32位。
所以计算时是按32位计算的,结果也是32位,溢出的都丢弃了。除非表达式中至少有一项是64位的。
所以你要把中任意一项强制转换为64位,比如把最后那个10给转了。
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2015-11-14 19:41:01 | 显示全部楼层
你num数组定义的什么类型?
回复

使用道具 举报

3

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2015-4-14
在线时间
0 小时
发表于 2015-11-14 20:30:55 | 显示全部楼层
合起来计算的时候,如果算式中没有uint64_t的类型,需要将其中某一个强制类型转换为uint64_t再计算,不然会默认以32位来计算
回复

使用道具 举报

17

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
296
金钱
296
注册时间
2015-4-29
在线时间
26 小时
 楼主| 发表于 2015-11-14 21:53:23 | 显示全部楼层
回复【2楼】BMN李:
---------------------------------
num是一个8位的数据,如num[0]=0x00;
回复

使用道具 举报

17

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
296
金钱
296
注册时间
2015-4-29
在线时间
26 小时
 楼主| 发表于 2015-11-14 21:55:00 | 显示全部楼层
回复【4楼】依韵:
---------------------------------
回复【3楼】chy712:
---------------------------------
我已经定义了uint64_t shuju=0;
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2015-11-14 22:38:18 | 显示全部楼层
回复【4楼】依韵:
---------------------------------
额。计算的时候加一个强制转换,转换为无符号64位。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 19:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表