為什麼微軟這樣的大公司也分不清 KB 和 KiB?

在計算機行業中1KB=1000B,1KiB=1024B是新出現的推薦標準,MacOS、Ubuntu等操作系統已經遵循這樣的換算關係。然而微軟的windows操作系統,即使是最新的win10預覽版中的資源管理器也仍然把1KB當做1024B來顯示文件大小。微軟這樣的大公司為什麼不放棄兼容性按照新標準修改顯示方式?

補充:某很多人認為微軟這樣是為了符合大多數人習慣。但是大多數人,包括很多教材,在這個地方犯錯都是因為windows帶來的影響。如果2005年IEC制定出標準的時候微軟就更正了,那麼現在人們都會習慣KiB這個單位了。

正如C語言的標準和其他標準一樣,即使其中有"並不是太合理"的規定,編譯器也會嚴格按照標準設計。操作系統也一樣。KB和KiB雖然相差不多,但是並不意味著可以互相通用。你把1GiB的文件放入1GB的U盤就放不下,允許單個文件大小1GB的網盤,你用1GiB分卷壓縮之後發現無法上傳。(注:很多人誤解為1000的換算關係是磁碟廠商先提出的,然而並不是,磁碟廠商只是遵循這個標準罷了,說1GB的磁碟不夠1GB是因為windows用1024換算的問題)

補充資料:為什麼 Windows 使用違背兩百年前的國際 Metric prefix 規範的容量標註單位? - 計算機(這個鏈接不是題主加的)


誰告訴你分不清得?截圖自Windows10的計算器通用應用。


以微軟的體量,並不需要遵守IEEE中的許多規範,包括1541;而iB這種說法也只是在學術界,還有開源項目中流行。

至於輪子哥說「who cares」,那我只能說傻逼;發paper到IEEE的時候你看看是不是有人care。

誰統一誰的問題而已。

*

順便說一下,至少學術界早就統一這個問題了:

比如這個是2007年的 Paper,全部都是 KiB等

而且這篇論文里還是寫 MS 相關的,照樣用 IEEE 標準;

*

至於說用不到,不知道這是啥玩意的……我只能說還是各大廠商普及推廣澄清工作沒做好——學術界和工業界,以及普通用戶的日常生活中,單位和基礎定義要盡量保持連貫統一;舉例子,你日常可以說「離心力」,但至少物理課得講「向心力」吧?MS 的作風就相當於上物理課全部用英制單位,然後為了讓英制單位 fit 那些公式,把常數都給改了……雖然英制單位歷史比公制單位久沒錯,很長一段時間英制單位使用範圍還比公制廣呢,但人都統一標準了,你還用英制,日常用就算了,媽的上正經課還用……所以現在 MS 再不轉……以後就跟現在美國建築相關專業整天搞啥英制單位一樣……


微軟官方的解釋:

這個問題在知乎上有個比較好的討論:

http://www.zhihu.com/question/22841835

同時微軟一個「考據」博客上也討論過這個問題:

http://blogs.msdn.com/b/oldnewthing/archive/2009/06/11/9725386.aspx

至於說「錯誤的單位」,上述知乎討論中有提到一點:

IEEE 1541 的屬性只是一個 recommendation(鼓勵政策),而不是金科玉律,也不是題主認為的非得執行不可的「規範」(另見下文「又及」部分)。有的國家或地區願意將 IEEE 1541 採納為產品及服務標準(比如歐盟,但各個廠商仍然基於自願決定是否採用),有的國家或地區則可以 discard after noticing.

個人感覺,對於一些普通大眾已經熟悉,並且廣泛使用的概念,再去進行「修訂」,不僅意義不大,而且造成用戶的混淆反而更麻煩。

單從 IT 領域來說,這種情況其實也並不罕見。例如「啟動分區」和「系統分區」之間的糾結,以及廠商為了方便好看而提供「4GB」內存條,或者「2TB」硬碟,以及「100MB」寬頻...


絕大多數用戶分不清這個,加上日常生活中沒有什麼人會區分這兩者,(而且讀起來這兩似乎沒啥區別)。

因此微軟分清了之後肯定會有無數用戶弄不懂為什麼一下是KB一下是KiB,(用戶:教練KiB是什麼啊為什麼我沒聽過這單位?這單位和KB有啥區別啊?)。

估計屆時知乎會有類似「為什麼微軟要用KiB和KB這樣不同的單位來計算文件大小」的問題。

絕大部分時候微軟是把用戶當傻逼(非貶義,當然水果也一樣)來設計的,這體現在盡量不讓用戶知道太多無關緊要的東西,有時候尊重大眾的習慣也會給大眾避免很多麻煩。

我認為這是一個體現。

至於Linux,本身就不是面向大眾的東西,開源人士們大多數自己是geek,區分這個我認為正常。

----------------手機手打分割線----------------

吐槽模式

大約很多geek都產生過「我比微軟聰明」的感覺,我有時候也對水果系統的很多過度「包辦」的設計感到惱火,有時候腦洞大開想讓微軟水果開一個geek模式,然而這大約是不可能的……


客: 我要一個中杯拿鐵。

星: 這是大杯。

客: 這不是中杯么?

星: 這是中杯,大杯,特大杯。

客: 尼瑪…

微軟要也來這麼一折騰,老羅得把自己扇殘了…


同意 Suji Yan 的說法,不同意部分人對這種看似「吹毛求疵」做法的冷嘲熱諷的態度。

事實上,身邊不少對計算機了解不多的人都有這樣的迷思:為啥我買的 X GB 的 U 盤插到電腦上就少了好幾 GB 呢?而且容量越大少的越多呢?

如果在單位上有明確的區分,那講明白這個事就很簡單了。

畢竟,像單位這種東西,有標準統一是好事,不像少數人所說的,這是果粉的完美主義壞習慣。其實,對這種東西的態度,也能看出一個人的嚴謹程度。


說得好像計算機領域 工業界 一直 服從 學術界 標準似的。

?_?


我已經習慣性的人為kb和kib都是1024了. 不信你找個程序員問問, 如果需要在程序里分配個1kb的buffer, 他申請1000還是1024?

當然, t66y也是1024.

PS: 我真想燒死那些在評論里不保持隊型的!


微軟的硬碟容量和內存統一使用KiB制,顯示為KB。

蘋果的硬碟容量使用KB制,內存用KiB制,全顯示為KB。

蘋果這就叫B格分裂。


然而並沒有卵用


我覺得把1kB當成1000B的人,肯定是賣硬碟的


據我所知,M$目前只有KB以1024為準,沒有1000為KiB這個搞法,1000這個搞法似乎只存在於磁碟空間大致演算法時口頭稱呼,非正式非書面,在二進位的世界裡,1024才是根,其他的也許更美更人性化更容易理解呼聲更高,但是他們:「這不科學」


1K=1024B 才是標準, KiB 才是少數廠商的 "發明"


還要不要臉了,這幫賣硬碟的無良廠商長期短斤少兩,生逼著蘋果把按1000算K給丫的擦屁股遮羞還嫌不夠,這生把自己打扮成標準定義,太欺負人了!


你們是有多無聊…不區分 kilo- 和 kibi- 還是一件值得驕傲的事了?


KB是在計算機誕生時就有的概念,KiB是好多年後生造出來的。

蘋果用KiB也沒幾年,更別提Ubuntu是跟風用了KiB。其他Linux發行版有用?

補充:

感謝@Money No 訂正

實際上對於Linux而言不是某個發行版在用,而是某些軟體會遵守IEEE1541

當然,好像Ubuntu是真在用,印象中Ubuntu當年還很高調的發布過消息……


這樣的話你這種大神又需要給別人解釋KiB和「一個G」怎麼換算了。


答標時都應老老實實按扇區以及每扇區算, 這是準確


為什麼最開始1KB=1024B,2的10次方就是1024啊,還有128,256,512,這些不都是嗎?有什麼好奇怪的,沿用了幾十年下來,然後05年出來一個「鼓勵」規範,呵呵,誰是異端自己知道。

不要總想搞個大新聞。


我記得當時蘋果改1024為1000的時候,還是個大新聞。。網站都出報道。。。微軟不這樣做是不想改吧,而不是分不清


首先反對KB這種寫法,應該是kB,儘管的確應該寫成KB,但又不應該寫成KB

其次,看到1kB,我的直觀反應是1024B,可是我更支持kiB這種表示方法,1kB = 1000B 才是合乎情理的好不

當然,我這種表述是異端中的異端,因為只有KB和KiB,沒有kB和kiB。。。

k代表是是kilo,本來就是1000,回去翻翻物理書,1024絕對是異端,同理還有p, n, u, m, M, G這些前綴,憑什麼計算機裡面就要亂改這套規則

還是老老實實用回1000


順口說一下「某些開源軟體」在命令行上的情況。

GNU 的軟體的確是使用 KiB 表示 1024B 而 KB 表示 1000B 的,然而 GNU 為了給懶人一條活路,另外還用 K 來表示 1KiB。

busybox 是模仿 GNU 造的,這邊記得沒差。

BSD 的話…至少在 OS X 上 BSD 的 dd 之類的從來就沒有看懂過 bs=16M 之類的東西,每次都得 bs=$((16*1048576)) 那麼喂。後來我用了 dc3dd 也就沒有 bs 的事情了。

這三家的 -h 選項都會用 K 代表 KiB。手上沒有 BSD manpage 所以我也不知道有沒有什麼標準。


推薦閱讀:

計算機專業本科生、鍵盤黨,覬覦linux的高效性,想棄win投Linux,求合適的發行版本?
你所知的計算機相關的最難的項目或項目類別是什麼?
微軟真的是無法被替代的嗎?arm有沒有可能超越x86?
Windows恢復後移動Windows.old到其他分區,當想恢復到原先的系統時再移動回去,可行嗎?
你贊成Mac系統的操作方式更適合普通人, 而Windows更適合IT專業人員嗎?

TAG:微軟Microsoft | MicrosoftWindows | 操作系統 | 計算機 | 計算機科學 |