1、问题描述
以前的工作中遇到一个问题,就是我有一个uint32_t的变量,每隔1ms累加一次,我需要利用这个变量来计算某段程序的运行时间。当时看到有个人直接使用的减法计算时间的差值,当时我有一个疑问就是时间溢出了怎么办?
2、解决过程
当时也是搜索了好多资料,也没有彻底解决,也请教了同事,估计他要么是不懂,要么是装不懂。在这里插播一条广告,这也许就是冯唐所说的看破不说破吧,注定不是一路人。
实际上这就是---无符号数的自动取模特性(也称为回绕特性)是计算机底层数学运算的核心机制之一,指当无符号整数的计算结果超出其数据类型所能表示的范围时,结果会自动对类型最大值+1取模,而非引发溢出错误。其本质是二进制存储的物理限制导致的循环行为。
3、详细说明
显示的检测回绕
4、总结
问题还是要深究,仔细思考