2017-06-12 56 views
6

當我使用在線工具將1GB轉換爲字節時,我得到了不同的答案。例如,使用谷歌轉換器:1GB=1e+9,而在另一個轉換器,我得到1GB= 1073741824。我猜想根據是否使用1KB=1024B1KB=1000B(這是Google單位),我們會以不同的方式使用此單元。千兆字節(GB)有多少個字節?

如何知道我的機器使用小型C程序或函數使用哪個單元? C有一個宏嗎?我想這樣做,因爲我的程序可能會通過各種操作系統運行。

+0

你爲什麼要機器有一個單位?這不是我們應該定義和使用的東西嗎? –

+0

順便說一句你在哪裏找到*谷歌轉換器* – tilz0R

+2

標題是壞的。問題不是關於字節的大小,而是關於*千*單位的定義。它可以是1000(在計算機外部常見的用法),或1024是2的接近力量。它只是一個*人類*慣例...... –

回答

11

這兩個工具正在轉換兩個不同的單位。 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 )的國際體系的一部分。然而,爲了便於理解和回憶,它們是從國際單位前綴中得出的十個正面權力。如表中所示,通過保留前綴的前兩個字母並添加字母bi,每個新前綴的名稱都從對應的SI前綴的名稱派生而來。

目前仍然對GBGiB事實上使用了很多混亂往往當GiB應該或意欲是GB使用。 想想硬盤世界: 您的操作系統假定1 MB等於1 048 576 bytes1MiB。驅動器製造商認爲(正確)1 MB等於1 000 000字節。因此,如果驅動器是標榜6.4 GB(6 400 000 000 bytes)操作系統認爲它是約6.1 GB 6 400 000 000/1 048 576 000 =〜6.1 GiB

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

+0

對於公斤,它應該是一個小寫'k' – Gerhardh

+0

我認爲大寫字母是正確的。看看這篇文章http://www.ieee802.org/secmail/pdf00106.pdf –

+0

哇。你是對的。謝謝你的提示。雖然它是'kB',他們命名爲二進制版本'KiB'。 – Gerhardh

3

這只是單位的混亂。對於2³⁰,實際上有兩個前綴G10⁹Gi)。字節通常應該與第二個字節進行比較,所以正確的文字應該是GiB