ขนาดไฟล์ใน Windows ไม่สมเหตุสมผล


18

ที่นี่ฉันมีไฟล์นี้ใน Windows:

ป้อนคำอธิบายรูปภาพที่นี่

แต่ไม่ใช่ 62,563 ไบต์ 62.6 KB

ป้อนคำอธิบายรูปภาพที่นี่


24
ดูXKCD # 394
Nick T

6
ความเป็นไปได้ที่ซ้ำกันของkibibyte, กิโลบิตและกิโลไบต์คืออะไร
Doktoro Reichard

11
Mac ใช้ทศนิยมกิโลไบต์ (มาตรฐาน IEC) ในขณะที่ Windows ยังคงใช้ไบนารีกิโลไบต์ (ตั้งแต่เปลี่ยนชื่อเป็น kibibytes) Linux มักจะหมายถึง KiB (ไบนารีกิโลไบต์ที่เปลี่ยนชื่อ) โดยส่วนตัวแล้วฉันคิดว่านี่เป็นสิ่งที่ผิดพลาดทุกอย่าง ไม่มีใครซื้อ RAM ติด 1,000,000,000 ไบต์ แต่แทนที่จะซื้อ RAM ที่มี 1,073,741,824 ไบต์ แต่เมื่อคุณซื้อฮาร์ดไดรฟ์คุณสามารถซื้อได้ด้วย 500,000,000,000 ไบต์ที่มีอยู่แม้ว่ามันจะมีการจัดสรรเซ็กเตอร์เป็นทวีคูณ 512 ไบต์ก็ตาม ฉันชอบกิโลไบต์ของฉันเมื่อพวกเขาไบนารี ...
phyrfox

1
@phyrfox: CPU 1 MHz คือ 1 ล้านรอบไม่ใช่ 1,073,741,824 รอบ ปริมาณการใช้เครือข่าย 1 Mbps เป็น 1 ล้านบิตเช่นกัน
Zan Lynx

3
@ZanLynx Mega ไม่ใช่ 1 ล้าน แต่ได้ดัดแปลงมาจากภาษากรีก "ยอดเยี่ยม" เช่นเดียวกับที่เป็นอยู่คำนำหน้า SI จะใช้กับหน่วยทางกายภาพเท่านั้น แต่ไบต์และบิตไม่ใช่หน่วยทางกายภาพ ยิ่งกว่านั้นเมื่อคำนำหน้า SI ได้มาตรฐานก็ยังมีมาตรฐานสำหรับขนาดหน่วยความจำซึ่งกำหนดความหมายของกิโล, เมกะและ giga เป็น 1024, 1048576 และ 1073741824 ตามลำดับ
Ruslan

คำตอบ:


53

62563 ไบต์ 61.0966797 kibibytes Kibiคำนำหน้าหมายความว่าฐานในการคำนวณคือ 1024 สองยืน "ฐาน" เพราะ2 ^ 10 = 1024 มันเป็นเพียงหนึ่งในคำนำหน้าไบนารีอื่น ๆ เป็นmebiหรือgibi

กิโลไบต์ในทางกลับกันคือ 1,000 ไบต์โดยใช้คำนำหน้า SI แบบคลาสสิกที่คุณรู้จากกิโลเมตรและกิโลกรัม มันใช้ฐานทศนิยม10 ^ 3 = 1000ดังนั้น Google เป็นจริงที่ถูกต้อง หากคุณใช้ Google เป็นจำนวน kibibytes ในปริมาณที่เท่ากันคุณจะได้คำตอบที่ถูกต้องในการคำนวณคำศัพท์

สิ่งสำคัญคือการทำให้ความแตกต่างระหว่างกิโลและ kibi วันนี้และจริง ๆ แล้ว Windows ควรรายงานว่า "61 KiB" แม่นยำมาก นี่คือการประชุม IEC สำหรับการทำให้ความแตกต่างง่ายขึ้น

ที่ถูกกล่าวว่ายังคงมีความคลุมเครือจำนวนมากในทุกวันนี้ซึ่งโดยปกติแล้วขนาดของฮาร์ดไดรฟ์จะรายงานในหน่วยไบนารี


1
@ Joker_vD: โชคดีดังนั้น ;-) กิโลและmega (และคำนำหน้าอื่น ๆ ที่ตามมา) เป็นเพียงปัจจัยไม่ใช่ปริมาณของตัวเองดังนั้นการใช้เพียงแค่KและM (และGและTและPเป็นต้น) จะไม่มีจุดหมายเลย (เช่นเดียวกับที่ถูกต้องสำหรับคำนำหน้าKibi , mebiฯลฯ อย่างเห็นได้ชัด.) นอกจากนี้ยังมีหน่วยที่ใช้กันทั่วไปทุกคนมีอย่างฟรีคลุมเครือไม่มีย่อจะใช้สองครั้ง แต่Kจะอยู่ที่รูปลักษณ์อย่างรวดเร็วก่อนเช่นเดียวกับK สำหรับเคลวิน
หรือผู้ทำแผนที่

1
@ORMapper ใช่และTจะเข้าใจผิดว่าเทสลา เพราะเห็นได้ชัดว่าคู่มือของโปรแกรมเมอร์มักจะพูดถึงฟิสิกส์พื้นฐาน
Joker_vD

1
@Joker_vD: ฟิสิกส์ปรากฏหรือไม่ว่ามีความเกี่ยวข้อง ประเด็นคือหน่วยสัญญาณKและTจะไม่โปร่งใสโดยไม่มีบริบทใด ๆ อีกต่อไป - ดังนั้นการสร้างข้อเสียที่ปฏิเสธไม่ได้เมื่อเทียบกับการทำแผนที่ที่ไม่ซ้ำกันระหว่างสัญลักษณ์หน่วยและหน่วย - ทำให้การประชุมดังกล่าวไม่พึงประสงค์อย่างมาก
หรือผู้ทำแผนที่

1
ใครบ้างที่อยู่นอกช่องว่างของโลกคอมพิวเตอร์รู้ว่า 'kibibyte' คืออะไร? อย่างไรก็ตามเมื่อไม่นานมานี้ Google ได้ 'ถูกต้อง' มันยังคงมีการอภิปรายมีชีวิตอยู่กับว่ากิโลไบต์คือ 1000 หรือ 1024 ไบต์
Justin Krejcha

9
ฉันเป็นคนเดียวที่รู้สึกเสียใจเล็กน้อยที่เรื่องนี้ถูกตัดเหลือ 61.0 แทนที่จะปัดเศษเป็น 61.1 หรือไม่?
Christofer Ohlsson

22

ใช่คิดว่า google เป็น Mad Hatter คุณต้องถามคำถามที่ถูกต้อง หรือบางทีเอลฟ์: บางครั้งคำตอบของคุณอาจเป็นได้ทั้งใช่และไม่ใช่

ไบต์ถึง KiB  กิโลไบต์ของคอมพิวเตอร์  หรือ kibibyte


5

1KB = 1024 ไบต์ ดังนั้น:

62563 / 1024 = 61.097KB

ในฐานะที่เป็นทางลัดหลายคนและระบบถือว่า KB เป็น 1,000 เนื่องจาก Kilo เป็นคำนำหน้า SI สำหรับ 1,000 แต่นักวิทยาศาสตร์คอมพิวเตอร์ใช้คำนำหน้าสำหรับ 2 ^ 10 ซึ่งเป็น 1024


3

ตัวเลขที่เกี่ยวข้องกับคอมพิวเตอร์ส่วนใหญ่จะใช้ส่วนนำหน้าแบบไบนารีซึ่งตรงกันข้ามกับระบบ SI ซึ่งใช้ส่วนนำหน้าทศนิยม หมายความว่า:

  • 1 กิโลกรัม = 10 3กรัม แต่
  • 1 กิโลไบต์ = 2 10ไบต์

นั่นคือ 1,000 กรัมและ 1024 ไบต์ตามลำดับ 62563 / 1024 ~= 61ดังนั้น Windows ถูกต้อง

ไม่ใช่ทุกอย่างที่เกี่ยวกับคอมพิวเตอร์นั้นใช้คำนำหน้าไบนารีและความไม่สอดคล้องนี้มักทำให้เกิดความเข้าใจผิด หน้า Wikipedia นี้อธิบายว่าคำนำหน้าใดใช้สำหรับวัดสิ่งต่าง ๆ

กรณีที่รุนแรงคือแบนด์วิดท์ มันมักจะใช้คำนำหน้าไบนารีเมื่อแสดงเป็นไบต์ต่อวินาทีและคำนำหน้าทศนิยมเมื่อแสดงในบิตต่อวินาที ดังนั้นประโยคนี้เป็นจริง:

1 ไบต์ต่อวินาที = 8 บิตต่อวินาที

แต่อันนี้เป็นเท็จ:

1 กิโลไบต์ต่อวินาที = 8 กิโลบิตต่อวินาที

เพราะ:

  • 1 KB / s = 1024 B / s
  • 1 Kbps = 1,000 bps

( คำถามที่เกี่ยวข้อง )


1
ผิดพลาด: 2 ^ 8 = 256 ---> ผมคิดว่าควรจะเป็น 2 ^ 10 ;-)
Hannu

หน้าพูดคุย WP น่าสนใจยิ่งกว่าบทความจริง (มีการถกเถียงกันอย่างมากว่า KB มีขนาด 1024 หรือ 1,000 ไบต์)
Justin Krejcha

แบนด์วิดธ์จะแสดงอย่างถูกต้องในเฮิร์ตซ์ซึ่งคำนำหน้า SI ใช้ powers-of-10 เหตุผลปริมาณงาน (อัตราการถ่ายโอนข้อมูลแบนด์วิธเท่ากันคูณด้วยประสิทธิภาพการเข้ารหัส) นั้นไม่ชัดเจนเนื่องจากคำจำกัดความแรกนำไปสู่(KB)/sโดยที่ KB ใช้คำนำหน้าแบบไบนารีและส่วนที่สองอิงจาก kHz หรือ kbaud โดยใช้ทศนิยมเป็นฐาน อุปสรรค
Ben Voigt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.