您可以采取一些混合方法:将字节数存储到一个变量中,将额外的位数存储到另一个变量中.类似于POSIX系统如何在秒和微秒内返回自纪元以来的时间:
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
Run Code Online (Sandbox Code Playgroud)
当您获得1505位转移时,存储:
bytes += (1505/8); // ==188
bits += (1505%8); // ==1
Run Code Online (Sandbox Code Playgroud)
这样你就可以跟踪比特.
或者你可以从中获取所有乐趣并使用long long.