从 16 位无符号值到分钟和秒

Posted

技术标签:

【中文标题】从 16 位无符号值到分钟和秒【英文标题】:from 16bit unsigned value to minutes and seconds 【发布时间】:2014-12-11 21:41:48 【问题描述】:

我正在编写一些 PIC 汇编代码来根据经过的分钟和秒以及总轨道长度(16 位无符号值,以秒为单位)计算 CD 轨道的剩余时间。

经过的分钟和秒是两个 8 位无符号值(两个 GPR 寄存器),总磁道长度是两个字节值(高字节和低字节)。

我需要计算剩余时间,以分钟和秒表示。 我尝试计算总经过的秒数(elapsed_minutes * 60 + elapsed_seconds)减去总轨道长度。现在我面临如何将这样的结果转换回 MM:SS 格式的问题。我必须除以 60 吗?取商(分钟)和余数(秒)?

【问题讨论】:

【参考方案1】:

是的,你除以 60 得到分钟,余数是秒。这只是代数,不是魔术!

【讨论】:

当然,没有魔法! :-) 你有什么好的算法建议吗?如何对两个字节的值进行重复减法?

以上是关于从 16 位无符号值到分钟和秒的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AVX2 中将 32 位无符号整数转换为 16 位无符号整数?

时间中的分钟和秒用的是啥符号表示?

如何使用缩放有效地将 16 位无符号短转换为 8 位无符号字符?

16位无符号比较器设计

uint是几位无符号整数?

如何在 C 中提取 32 位无符号整数的特定“n”位?