千兆字节(GB)是多少字节?

时间:2017-06-12 07:01:28

标签: c

当我使用在线工具在1GB到字节之间进行转换时,我会得到不同的答案。例如,在另一个转换器中使用Google转换器:1GB=1e+9,我得到1GB= 1073741824。我想根据1KB=1024B1KB=1000B(这是Google单位),以不同的方式使用单位。

如何使用小型C程序或功能知道我的机器使用哪个单元? C有宏吗?我想这样做,因为我的程序可能会通过各种操作系统运行。

3 个答案:

答案 0 :(得分:14)

这两个工具正在转换两个不同的单位。 1 GB = 10^9字节1 GiB = 2^30个字节。

尝试使用谷歌转换器GiB代替GB,这个谜团将会解决。

以下内容可帮助您更好地了解转化。

Factor  Name    Symbol  Origin  Derivation   Decimal
 2^10   kibi    Ki  kilobinary: (2^10)^1    kilo: (10^3)^1
 2^20   mebi    Mi  megabinary: (2^10)^2    mega: (10^3)^2
 2^30   gibi    Gi  gigabinary: (2^10)^3    giga: (10^3)^3
 2^40   tebi    Ti  terabinary: (2^10)^4    tera: (10^3)^4
 2^50   pebi    Pi  petabinary: (2^10)^5    peta: (10^3)^5
 2^60   exbi    Ei  exabinary:  (2^10)^6    exa:  (10^3)^6

请注意,二进制倍数的新前缀不是国际单位制( SI )的一部分。然而,为了便于理解和回忆,它们来自SI前缀,用于十的正幂。如表中所示,每个新前缀的名称是通过保留 SI 前缀的前两个字母并添加字母bi来从相应SI前缀的名称派生的。 / p>

GBGiB的使用仍然存在很多混淆,实际上GB应该或者原本应该GiB使用1 MB。 想想硬盘世界: 您的操作系统假定1 048 576 bytes等于1MiB,即1 MB。驱动器制造商认为(正确)1 000 000等于6.4字节。因此,如果将广告宣传为6 400 000 000 bytes GB(6 400 000 000/1 048 576 000),则操作系统会将其视为大约6.1 GB 6.1 GiB =〜import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Base64; import android.util.Log; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; private String hash_hmac(String str, String secret) throws Exception{ Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); byte[] string = str.getBytes(); String stringInBase64 = Base64.encodeToString(string, Base64.DEFAULT); SecretKeySpec secretKey = new SecretKeySpec(secret.getBytes(), "HmacSHA256"); sha256_HMAC.init(secretKey); String hash = Base64.encodeToString(sha256_HMAC.doFinal(stringInBase64.getBytes()), Base64.DEFAULT); return hash; } String str = "1234"; String key = "1234"; try { Log.d("HMAC:", hash_hmac(str,key)); } catch (Exception e) { Log.d("HMAC:","stop"); e.printStackTrace(); }

Take a look at this for more info on prefixes for binary units this on metric prefixes

答案 1 :(得分:4)

这只是单位的混乱。 G实际上有两个前缀10⁹Gi有两个前缀2³⁰。通常应该用秒测量字节,因此正确的写作将是GiB

答案 2 :(得分:0)

  • “千兆字节”是数字的单位字节的倍数 信息。
  • 二进制前缀gibi表示2 ^ 30,因此一个gibibyte等于 1073741824字节= 1024兆字节。

  • 千兆字节的单位符号是GiB。它是具有 国际电工技术学会定义的二进制前缀 委员会(IEC)在1998年。

  • “千兆字节”与千兆字节(GB)密切相关, 由IEC定义为10 ^ 9字节= 1000000000字节,1GiB≈1.024GB。 1024吉字节等于1吉字节。

  • 在计算机内存中,通常以千兆字节和GB为单位 用于表示1024 ^ 3(2 ^ 30)字节,尽管不是在数据上下文中 传输,不一定是硬盘驱动器的大小。

enter image description here