C 如何计算MB/s&;MiB/s?
我最近发现MB/s在技术上相当于800万比特/秒 而不是每秒10242位,这应该称为Mebibyte 这应该很容易,但当比较不同来源的产出时,我得到了不同的答案,即使是从谷歌那里,它认为衡量标准之间根本没有区别 如果我在17797601纳秒内传输1381530字节,那么这两种度量的数据速率是多少?你用什么公式来计算呢 目前我有:持续时间是纳秒C 如何计算MB/s&;MiB/s?,c,C,我最近发现MB/s在技术上相当于800万比特/秒 而不是每秒10242位,这应该称为Mebibyte 这应该很容易,但当比较不同来源的产出时,我得到了不同的答案,即使是从谷歌那里,它认为衡量标准之间根本没有区别 如果我在17797601纳秒内传输1381530字节,那么这两种度量的数据速率是多少?你用什么公式来计算呢 目前我有:持续时间是纳秒 double data_rate_MiBps = (num_bytes/1024/1000) / ((double)duration * 1e-9); d
double data_rate_MiBps = (num_bytes/1024/1000) / ((double)duration * 1e-9);
double data_rate_MBps = (num_bytes/1024/1024) / ((double)duration * 1e-9);
谢谢你的回复。我的数字以前没有意义,但现在有了意义。上述代码应如下所示:
double data_rate_MiBps = (num_bytes/1024.0/1000.0) / ((double)duration * 1e-9);
double data_rate_MBps = (num_bytes/1024.0/1024.0) / ((double)duration * 1e-9);
因此,我得到:
74.085 MiB/s
75.863 MB/s
我认为这是有道理的
也许是个更好的问题。首先,为什么选择1024字节作为1KB而不是1000字节。因为公斤(etc)=1000其他地方。103=公斤
106=百万/百万
109=千兆/十亿
这是你应该在学校里教过的。但在计算字节时,计算结果略有不同:
210字节=1024字节=1千字节
220字节=10242字节=1兆字节
230字节=10243字节=1千兆字节
当然,如果您使用106字节作为1兆字节,没有人会责怪您。硬盘制造商使用109字节作为1G字节
为了使计算更加明确,在引用字节时,通常使用MiB/s(或GiB/s)代替MB/s(或GB/s)。因此,1 MiB/s实际上意味着每秒10242字节。然而,您会看到许多区域使用简单的MB表示10242字节(例如,Windows)
现在,由您决定如何计算MB/s。如果使用MiB/s,则应遵循惯例,使用10242而不是106。正确的说法是,mega是一个SI前缀单位,因此从技术上讲,它应该指1000 000字节,而mebi前缀应该指220 在线转换器并不总是遵循现代标准,因为直到最近,许多人、硬件公司和操作系统都混淆了mega的定义,并将其用作二进制前缀,有时不一致 如果我在17797601纳秒内传输1381530字节,那么这两种度量的数据速率是多少 0.0776字节/秒 首先,要小心: 我最近发现MB/s在技术上相当于8000百万比特/秒 我从未听说过这个定义 “MB/s”通常表示“每秒兆字节”。这可以是两种定义之一,具体取决于您询问的对象:
- 每秒100万字节(每秒800万比特)(根据IEEE的定义)
- 更常见的定义是每秒1024*1024(1048576)字节(每秒8388608位),常见于许多用法中
因此,当提到更好地以2的幂衡量的值时,将千、兆和千兆定义为210、220和230更为合理。@AdrianCornish-我认为可以,但我不是唯一有问题的人。至少2个在线转换器给出不同的答案!世界对兆字节的看法是不同的,你至少应该与你的Mibps测量值保持一致。如果兆字节是1000千字节,你不妨考虑千字节是1000字节而不是10字节。