繁体   English   中英

将十进制整数转换为六进制数

[英]Converting a decimal integer to a sexagesimal number

我正在寻找将十进制转换为六十进制的简单C代码。这是我想做的事情。

t1=13:05
t2=5:30 
t1 minute=13*60+05=785
t2 in minute=5*60+30=330
t1-t2=455minute
time diff=455/60=7 hour 58 minute ("this wrong consideration since value in decimal");
but expected is 7 hour 35 minute 

使用整数除法获得整小时数,然后取模以获取整数或分钟数。

您基本上是在问,如果我正确理解,如何将数字从十进制转换为另一个基数,即60。 我认为通用算法可以帮助您理解问题的基本思路,请尝试以下方法:http://www.cs.trincoll.edu/~ram/cpsc110/inclass/conversions.html

竖起大拇指来修补六分法系统,它具有出色的“数学美”,而且我很久以来都没有人看到有人对此做过任何事情。

您不能只做455/60整数除法并期望直接得到小时和分钟。 将以小时为单位。

相反,您可以:

diff_in_hours = (t1 - t2) / 60;
diff_in_mins = (t1 - t2) % 60;
printf("difference in time is %d : %d", diff_in_hours, diff_in_mins);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM