如何在C代码中使用纯整数数学计算比特率?

如何在C代码中使用纯整数数学计算比特率?,c,integer,division,C,Integer,Division,我打赌我想做的事情并没有那么难,但我并不是自己想出来的 我想在不使用float或double的情况下,在C语言代码中以毫秒为单位计算每秒字节数 例如,仅使用整数,如果在过去的1300ms内出现123000字节,如何计算每秒字节数 谢谢我假设您使用的是32位系统,int是32位数据类型。还考虑整数数据类型的舍入。 这是代码供参考 int main() { int bytes_count = 123000; /* total bytes captured */ int time_in

我打赌我想做的事情并没有那么难,但我并不是自己想出来的

我想在不使用float或double的情况下,在C语言代码中以毫秒为单位计算每秒字节数

例如,仅使用整数,如果在过去的1300ms内出现123000字节,如何计算每秒字节数


谢谢

我假设您使用的是32位系统,int是32位数据类型。还考虑整数数据类型

的舍入。 这是代码供参考

int main()
{
    int bytes_count = 123000; /* total bytes captured */
    int time_in_ms = 1300; /* capture end time - start time */

    int byte_rate_per_second = (bytes_count * 1000)/ time_in_ms; /* It will round-off as it's integer type*/
    int roundoff = ((bytes_count % time_in_ms) * 10)/time_in_ms; /*gives roundoff in one point precision. Use recursion for more precision*/
    return 0;
}

字节*1000毫秒/秒/MB字节/秒=字节数*1000/持续时间(毫秒);只需确保括号中的部分使用足够大的整数类型进行计算,以容纳中间结果。我自己也会使用无符号的long。如果使用整数,舍入问题就变得很重要。对于浮点数,通常会选择舍入到偶数。非常感谢。我觉得这件事很简单,但不知怎么的,我没有想到