我最近发现MB / s技术上相当于800万比特/秒 而不是每秒1024 ^ 2位,应称为Mebibyte。
这应该很容易,但是当比较各种来源的输出时,我会得到不同的答案,即使是谷歌认为这些措施之间没有任何区别。
如果我在17797601纳秒内传输1381530个字节,那么这两个度量中的数据速率是多少?你用它来计算它的公式是什么?
目前我有:持续时间以纳秒为单位。
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.由于Kilo(etc)= 1000其他地方。
答案 0 :(得分:20)
如果我在17797601纳秒内传输1381530个字节,那么这两个度量中的数据速率是多少?
0.0776字节/ ns。
首先,小心:
我最近发现MB / s在技术上相当于8000万比特/秒
我从来没有听说过这个定义。
“MB / s”通常表示“每秒兆字节数”。这可以是两个定义中的一个,具体取决于您的要求:
在某些非常罕见的情况下,“MB / s”可以表示“每秒兆比特”,但每秒兆比特通常缩写为“Mbps”或“Mbits / s”。上下文通常会在适当的情况下提示您:无线传输速度,以太网卡等通常以每秒兆比特为单位进行测量;通过互联网进行的文件传输以每秒兆字节(或mebibyte,见下一段)来衡量。
IEEE已经提出计算机应该遵循SI前缀,并且使用“Kilobyte”来表示10 ^ 3字节,而不是2 ^ 10字节,这在历史上已经完成。 (因而造成了对兆字节实际使用的定义的所有混淆。)然而,在许多情况下,10 ^ 3没有多大意义,因此引入了不同的“二进制”前缀,例如“Kibibyte”,这是缩写为KiB,总是表示1024字节。在你的情况下,有“Mebibyte”或MiB(每秒一次,MiB / s),意味着1024 * 1024字节。
有关详细信息,请参阅Wikipedia article on the Megabyte。
(对于比特/ s的转换,我假设为8比特/字节。)
答案 1 :(得分:14)
见
1> 每秒兆字节
每秒兆字节(MB / s或MBps)是数据传输速率的单位,等于:
每秒1,000,000字节,
2 - ; 每秒兆比特
每秒兆比特(Mbit / s,Mb / s或Mbps)是数据传输速率的单位,等于:
每秒1,000,000位
3>每秒Mebibyte
每秒mebibyte(MiB / s或MiBps)是数据传输速率的单位,等于:
每秒1,048,576字节,或
4>每秒Mebibit
每秒mebibit(Mibit / s或Mib / s)是数据传输速率的单位,等于:
每秒1,048,576位或
请参阅Confusion with megabytes, 1 megabyte is 1 million bytes or 1024 * 1024 (1048576) bytes?
答案 2 :(得分:1)
10 ^ 3 = Kilo
10 ^ 6 =百万/百万
10 ^ 9 = Giga / Billion
这就是你应该在学校里教过的东西。但是当你计算字节时,计算会略有不同:
2 ^ 10字节= 1024字节= 1 Kilobyte
2 ^ 20字节= 1024 ^ 2字节= 1兆字节
2 ^ 30字节= 1024 ^ 3字节= 1千兆字节
当然,如果你使用10 ^ 6字节作为1兆字节,没有人会责怪你。 HDD制造商使用10 ^ 9字节作为1千兆字节。
为了明确地进行计算,在引用字节时经常使用MiB / s(或GiB / s)而不是MB / s(或GB / s)。因此,1 MiB / s实际上意味着每秒1024 ^ 2字节。然而,您将看到许多区域,其中简单的MB用于指示1024 ^ 2字节(例如,Windows)。
现在,你要怎么计算MB / s。如果您使用MiB / s,那么您应该遵守约定并使用1024 ^ 2而不是10 ^ 6.
答案 3 :(得分:0)
mega是SI前缀单位是正确的,因此技术上应该指代1 000 000字节,而mebi前缀应该指2 ^ 20。
在线转换器并不总是遵循现代标准,因为直到最近很多人,硬件公司和操作系统都混淆了mega的定义并将其用于二进制前缀有时不一致。
答案 4 :(得分:0)
可能是一个更好的问题。为什么首先将1024个字节选择为1KB而不是1000个字节?由于Kilo(etc)= 1000其他地方。
前缀Kilo,Mega,Giga和Tera来自公制系统,该系统被设计为使用10的幂,因为我们都使用基数10。但是计算机使用2的幂,因此更好地将数量定义为2的幂而不是10。巧合的是2 ^ 10大约等于10 ^ 3。因此,计算机专业人员开始将2 ^ 10称为Kilo,将2 ^ 20称为Mega,依此类推。整数值表示为使用8、16、32或64位(也就是2的幂)的值。内存地址被绑定为2的幂。因此,地址空间的16位可以访问2 ^ 16字节的内存。同样,由于32位处理器可以访问2 ^ 32个地址,或者每个8位的2 ^ 2个千兆地址,因此它可以使用4 GB的内存。这就是为什么内存芯片的大小约为1GB,这意味着2 ^ 30字节。
因此,当指的是更好地用2的幂测量的值时,将千,兆和千兆定义为2 ^ 10、2 ^ 20和2 ^ 30更有意义。