另外准确性

Syn*_*ror 0 c c++ addition

我正在使用C中的工具来计算一些传入/传出位,我想保留这些位而不是通过更改为字节来丢失它们.

最后我想显示下载/上传的xxxxx位.我将最大值放在10GB = 85899345920bits上,需要大约35位来表示.我使用的是32位操作系统.我尝试了unsigned long和unsigned int,但是它们已经重载了.

任何简单的方法来获得添加过程并保持准确性?

sar*_*old 5

您可以采取一些混合方法:将字节数存储到一个变量中,将额外的位数存储到另一个变量中.类似于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.