前天,聯合報一篇題為〈500G變465G 硬碟變小了 算法不同民眾罵〉,精彩地報導此事。為了讓大家更清楚地認識電腦容量的算法,以破解廠商的宣稱,故撰寫此篇。
電腦記錄資料的最小單位是「位元」,英文寫成bit,它是binary digit的縮寫,binary意指二進位制的。digit意指阿拉伯數字(即0、1、2、3、4、5、6、7、8、9),電腦的數值是以0與1兩個數元的組合來表示,這種二進位制數字系統是電腦數位計算的主要方法。bit可表示的資料量是2^1 = 2個。
比位元稍大的單位是「位元組」,英文寫成byte,它是由八個位元所組成,可表示的資料量是2^8 =256個。比位元組大的單位是「千位元組」,英文寫成kilobyte,簡寫是KB、Kb或K,可表示的位元組是2^10 = 1,024個。比千位元組大的單位是「百萬位元組」,英文寫成megabyte,簡寫是MB、Mb或M,可表示的位元組是2^20 = 1,024 * 1,024 =1,048,576個。
比百萬位元組大的單位是「十億位元組」,英文寫成gigabyte,簡寫是 GB、Gb或G,可表示的位元組是2^30 = 1,024 * 1,024 * 1,024 =1,073,741,824個。比十億位元組大的單位是「兆位元組」,英文寫成terabyte,簡寫是TB、Tb或T,可表示的位元組是2^40 = 1,024 * 1,024 * 1,024 * 1,024 =1,099,511,627,776個。
電腦廠商宣稱硬碟容量是500G,可是實際容量卻只有465G,主要的關鍵在於千位元組KB應等於2^10=1,024,可是廠商卻認為KB的K是kilo,意指1,000,即10^3。因此,1KB的差距是1,024-1,000=24,1MB的差距是(1,024*1,024)-(1,000*1,000)= 48,576,1GB的差距是(1,024*1,024*1,024)-(1,000*1,000*1,000)= 73,741,824。故 500GB的差距是500*((1,024*1,024*1,024)-(1,000*1,000*1,000))= 36,870,912,000,500GB的差距也可以用算術式表示,即500*(2^30-10^9)= 36,870,912,000。
聯合報的報導有提到簡易換算公式,是將廠商規格容易乘上0.9313,這個比值是由10^9/2^30=0.931322575求得的,但這個比值只針對GB,若針對MB,比值將是10^6/2^20=0.9537,若針對KB,比值將是10^3/2^10=0.9766。未來,若針對容量更高的TB,比值將是10^12/2^40= 0.9095,也就是針對廠商所宣稱的容量,應該打上9折。
您認知的500G等於 500 * (1,024 * 1,024 * 1,024) = 536,870,912,000,而廠商認知的500G等於 500 * (1,000 * 1,000 * 1,000) = 500,000,000,000,但是500,000,000,000/(2^30)卻只等於465G,也就是硬碟容量一下子就少掉了35G。廠商舉披薩切成幾小份來說明硬碟容量實際上沒有少,但這並非實情;實際情況是,兩個大小不同的披薩,雖然切成一樣的等份,可是兩者的大小是有差別的。因此,廠商所宣稱的硬碟500G,應該是指500 Billon byte,而非500 Gigabyte。
[相關閱讀]
下一則: 名稱相同的鄉鎮市區知多少?(感謝聯合新聞網列入「意見評論》城邦論壇》」)
限會員,要發表迴響,請先登入
- 6樓. 房子2011/05/14 10:25拍say,沒表達清楚
拍say,沒表達清楚!以往我和一般非資訊(電腦)人解釋的方法通常是:"因為電腦裡使用的是2進位,所以465G就是我們平常(10進位)說的500G,465G的G是2^30,而500G的G是10^9,所以電腦裡的465G就是10進位的500G.465G是在電腦世界裡面,而500G則是已走出了電腦世界,回到平常世界.歡迎房子格友再回應,教育部在民國七十幾年起,就在大、中、小學推廣資訊教育,而目前會去購買電腦產品的消費者,我認為大都已學過電腦概論,如果他們當初沒認真學,學過就忘了,弄不清楚二進位,付了500GB的價錢,卻拿回465GB的硬碟,不知該怪老闆?還是怪自己書到用時方恨少?
王國良(阿國) 於 2011/05/14 17:26回覆 - 5樓. 房子2011/05/11 10:50沒錯啦!
廠商說是500G,消費者在電腦上看到的是465G是沒錯的!因為465*2^30約=500GB.
10進位是一般社會大眾的認知,只有在電腦的國度裡才是2進位,才會1K=1024,
一般都是1K=1000,所以電腦上看到的465G其實就是465*2^30,就是一般所說的500G
電腦裡的G是2^30,而一般的G是2*10^9,兩者有些差異!
所以我認為廠商沒有欺瞞,只是使用通用的講法,而不是使用2進位的講法
歡迎房子格友回應,但您寫的式子465*2^30約=500GB似乎有問題,應是465GB=465 *2^30 bytes約=500B bytes,465GB的GB的全稱是Gigabyte,500B的B的全稱是Billon。學過BCC的人,皆知1KB=1,024 Bytes,這是不容改變的,沒有模糊的空間,但廠商硬要說1K=1 kilo=1,000 Bytes,就有如1斤=16兩是任人皆知的常識,但廠商硬要說他採用的是十進位制,所以1斤=10兩,消費者難道不知道兩者是有相當的差距嗎?
王國良(阿國) 於 2011/05/11 21:59回覆 - 4樓. GolfNut — 無心的邂逅2011/04/20 16:05欺詐
廠商沒有“認知”上的問題 — 電腦業者沒有一個人不知道 1K = 1024, 1M = 1,048,576, 1G = 1,073,741,824 。只不過他們“利用”一般人不懂,以為 1K = 1000, 1M = 1,000,000 等等來以少報多藉以圖利而已。這是欺詐,不是誤導,更沒甚麼好向大眾澄清的。歡迎Golf Nut格友回應。做生意貴在誠信,應做到童叟無欺的境界,商品的規格應誠實標示,不要任意灌水,因為消費者畢竟不是傻瓜,是會分辨的。
王國良(阿國) 於 2011/04/20 23:10回覆 - 3樓. GolfNut — 無心的邂逅2011/04/20 15:00“資料量”
如果你説一個 bit 可表示的“資料量”是 2 個,因為一個 byte 有八個 bit,所以一個 byte 可表示的“資料量”是 256 個,那麼因為一個 kilobyte 是 1024 個 byte,因此 1KB 可表示的“資料量”應該是 256 * 1024 = 262,144 個,而不是貴文裡的 1024 個。同理一個 megabyte 可表示的“資料量”應該是 256 * 1024 * 1024 = 268,435,456 個,而不是 1,048,576 個。會產生這個錯誤是因為在講 bit 和 byte 的時候你的“資料量”定義是一個個 bit,等到 KB 和 MB 時忽然又變成一個個 byte 。懂的人不會搞錯,不懂的人會誤解。歡迎Golf Nut格友回應,您的指正甚是,因此已將不正確之處改正,謝謝您。 王國良(阿國) 於 2011/04/20 23:10回覆 - 2樓. 烏拉瑰本尊在此2011/04/20 12:33此G非彼G
此G非彼G﹐廠商有故意渾水摸魚的可能。此地會不會也這樣﹖歡迎烏拉瑰格友回應,真是此G非彼G,一個是貨真價實的,一個卻是必須打折的。您問本地是否也這樣,過去我曾買外接硬碟,可是沒仔細檢查它的標示和實際容量是否有差異。
王國良(阿國) 於 2011/04/20 23:11回覆 - 1樓. 戈壁紅駝2011/04/20 00:33b 和 B 不同
kb/kB, Mb/MB 嚴格說是不同的。小寫的 b 代表 bit,而大寫的 B 才是 byte,所以 1kb 是 1024 個 bits, 1kB 則是 1024 個 bytes。Mb vs. MB 差別相同,不贅述。
請參考:
http://www.diffen.com/difference/KB_vs_MB
千里明駝,勇闖山間路。歡迎戈壁紅駝格友回應。將kilobyte簡寫成Kb是英文字典的寫法,因為kilobyte是一個單字,寫成KB或Kb應該都可以,但一般以寫KB居多。電腦資料若用bit表示,數字會很長,所以才用1 byte代表8 bits。因此,用於表示儲存容量,B或b皆指byte,例如2KB、2Kb、2MB或2Mb等;用於表示傳輸速率,b是指bit,而且一定會伴隨ps(全稱是per second)出現,例如2Kbps或2Mbps。
王國良(阿國) 於 2011/04/20 09:32回覆