Có đúng là 1 MB có thể có nghĩa là 1000000 byte, 1024000 byte hoặc 1048576 byte? [bản sao]


63

Bản sao có thể có:
sự khác biệt giữa kibibyte, kilobit và kilobyte là gì?

Nếu 1 KB (kilobyte) có thể có nghĩa là 1000 byte hoặc 1024 byte,

Và 1 MB (megabyte) có thể có nghĩa là 1000 KB hoặc 1024 KB,

điều đó không có nghĩa là 1 MB có thể có nghĩa là bất kỳ một trong bốn điều dưới đây? :

  1. 1000 × 1000 = 1000000 byte

  2. 1000 × 1024 = 1024000 byte

  3. 1024 × 1000 = 1024000 byte

  4. 1024 × 1024 = 1048576 byte

Hoặc là 2.3. không được chấp nhận để 1 MB có thể chỉ có nghĩa là 1000000 byte của 1048576 byte?


3
Bạn có biết có −0 (số 0 âm) và +0 (số 0 dương) không? vi.wikipedia.org/wiki/Sign_zero
Aki

4
Nơi duy nhất tôi thấy các tiền tố khác nhau được trộn lẫn là các đĩa mềm 1,44 [thứ gì đó không phải là mebibyte và không phải là megabyte].
AndrejaKo

Aki có nhưng tôi không hiểu bạn đang nói gì?
Pacerier

"Nếu con số không đẹp, tôi không biết nó là gì." - Paul Erdős
Aki

4
Vui lòng, 'kB', không phải 'KB'.
Andreas Rejbrand

Câu trả lời:


107

Đầu tiên, có hai loại tiền tố khi nói về thông tin kỹ thuật số (đọc byte ): tiền tố SItiền tố nhị phân .

Tiền tố SI

Tiền tố SI là lũy thừa của 1.000 (1.000 1 , 1.000 2 , 1.000 3 , v.v.):

  • 1 kB = 1 kilobyte = 1.000 1 byte = 1.000 byte;
  • 1 MB = 1 megabyte = 1.000 2 byte = 1.000.000 byte;
  • 1 GB = 1 gigabyte = 1.000 3 byte = 1.000.000.000 byte;
  • vân vân .

Như bạn có thể thấy, chỉ các ký hiệu SI cực lớn trở lên mới được viết hoa. Do đó, KB không phải là tiền tố hợp lệ .

Tiền tố nhị phân

Tiền tố nhị phân là lũy thừa của 1.024 (1.024 1 , 1.024 2 , 1.024 3 , v.v.):

  • 1 KiB = 1 kibibyte = 1.024 1 byte = 1.024 byte;
  • 1 MiB = 1 mebibyte = 1.024 2 byte = 1.048.576 byte;
  • 1 GiB = 1 gibibyte = 1.024 3 byte = 1.073.741.824 byte;
  • vân vân .

Như bạn có thể thấy ở đây, mọi ký hiệu nhị phân đều được viết hoa và chữ thường i được thêm vào trước ký hiệu B để chỉ ra rằng chúng ta đang nói về kibibytes thay vì kilobyte, mebibytes thay vì megabyte, v.v.


Tuy nhiên , tiền tố nhị phân không được sử dụng rộng rãi, Windows hoàn toàn không sử dụng chúng.

Điều xảy ra ở đây là Windows cho chúng ta biết rằng ổ đĩa cứng có dung lượng 300.066.795.520 byte, theo Windows, tương đương 279 GB. Tuy nhiên, chúng tôi biết rằng nếu 1.000.000.000 byte = 1 GB, 300.066.795.520 byte = ~ 300 GB = ~ 279.5 GiB .

Do đó, nếu bạn thấy 1 KB (sai, hãy nhớ) hoặc 1 MB, giả sử chúng ta đang nói chuyện tương ứng là 1 kibibyte và 1 mebibyte. Kb , kb , Gb , gb , v.v. cũng thường xuyên, mặc dù chúng đại diện cho các bit (8 bit = 1 byte).


Tốt thôi , trong mọi trường hợp, 1 KB hoặc 1 MB có thể có nhiều giá trị, mặc dù việc sử dụng (xấu) dường như nói ngược lại.


3
Có lẽ bạn nên thêm rằng, khi nói về tốc độ truyền dữ liệu (tính bằng bit / s), người ta thường sử dụng tiền tố cơ sở 10, ví dụ Gb / s thực sự có nghĩa là "một tỷ bit mỗi giây".
Frank

3
Các tiền tố nhị phân là tương đối mới, và vẫn rất phổ biến để sử dụng các tiền tố SI để chỉ các quyền hạn của 2. Tôi nghĩ rằng nhiều người thậm chí không biết về các tiền tố nhị phân. @Novox đưa ra một điểm tốt: ngay cả những người sử dụng GB có nghĩa là 1048576 byte lưu trữ thường sử dụng Gb / s có nghĩa là 1000000000 bit mỗi giây. Việc phát minh ra các tiền tố nhị phân không làm cho tất cả việc sử dụng nhất quán.
Keith Thompson

5
@kubanchot: Tôi không đồng ý rằng đó là sự lười biếng - nhưng sự lười biếng không nhất thiết là một điều xấu. Chúng ta cần một cách để tham khảo lưu trữ theo các đơn vị 1024, 1048576 hoặc 1073741824 byte và trước khi phát minh (tương đối gần đây) các tiền tố nhị phân (Ki, Mi, Gi), sử dụng lại các tiền tố SI (K, M, G) là cách hợp lý duy nhất để làm điều đó. Và chúng tôi đã làm điều đó trong nhiều năm mà các tiền tố K, M, G vẫn còn mơ hồ. Sẽ tốt hơn nếu sử dụng tiền tố nhị phân và SI ngay từ đầu, nhưng đó không phải là điều đã xảy ra.
Keith Thompson

2
@kubanchot Đừng hiểu sai ý tôi, tôi / tôi / người ủng hộ mạnh mẽ việc sử dụng đơn vị chính xác. Tuy nhiên, tôi không nghĩ rằng "nó rõ ràng". Nếu nó thực sự là như vậy, sẽ không có câu hỏi như vậy, phải không?
Frank

3
Hmmm, hãy thử cách khác, phải không? Hãy nhìn những gì đã xảy ra với 8 bit. Thay vì gọi nó là decabit và nhấn mạnh rằng deca- đôi khi có nghĩa là trong CNTT 8 chứ không phải 10, ai đó đã phát minh ra một thuật ngữ mới và gọi nó là một byte. Voila! Cùng một giải pháp là có thể với 1024 nếu không muốn nói 65536.
kubanczyk

14

Kilobyte là phép đo cơ sở 10, vì vậy 1 kilobyte = 10 với công suất 3 = 1000 byte.

Mặc dù điều này không hoàn toàn chính xác để đo chính xác dữ liệu vật lý vì chúng được lưu trữ ở dạng nhị phân được đo ở cơ sở 2, và do đó, kibibyte được thành lập vào năm 1999 để thay thế kilobyte khi được sử dụng trong bối cảnh khoa học máy tính có nghĩa là 1024 byte.

Kibibyte là phép đo cơ sở 2, vì vậy 1 kibibyte = 2 với sức mạnh 10 = 1024 byte.

Điều tương tự cũng áp dụng cho megabyte (1 megabyte = 10 với sức mạnh 6 = 1000000 byte), mà phép đo cơ sở 2 là mebibyte (1 mebibyte = 2 với sức mạnh 20 = 1048576 byte)

  • (1) áp dụng cho megabyte
  • (2) và (3) không được chấp nhận
  • (4) áp dụng cho mebibyte

13
Mặc dù điều này đúng về mặt kỹ thuật, tôi muốn chỉ ra rằng trong cách sử dụng thông thường, không ai nói kibibyte hay mebibyte, và khi nói về 'kilobyte', mọi người nhắc đến đơn vị mà Windows hoặc HĐH hiển thị, đó là kibibytes. Nơi duy nhất tôi thường xuyên thấy kilobyte được sử dụng một cách chính xác là trên dung lượng ổ cứng, khiến người dùng nản lòng đến tận cùng.
Darth Android

4
Có, nhưng chỉ vì hệ điều hành của họ không sử dụng tiền tố SI "chính xác".
Frank

2
Tuy nhiên, MB có thể có nghĩa là 1.000.000 hoặc 1.048.576 byte . Trong khi không chính xác , nó phổ biến. CC @DarthAndroid
Daniel Beck

À, 1998 ... khi Sao Diêm Vương là một hành tinh và một kilobyte là 1024 byte.
Skrymsli

9

Hiện tại việc sử dụng "KB", "MB", v.v ... có nghĩa là bất cứ điều gì khác ngoài 1000 byte, 1000 x 1000 byte, v.v ... không được chấp nhận và trái với hầu hết các tiêu chuẩn chính thức. Cách mới để thể hiện 1024 byte, 1024 x 1024 byte, v.v. là KiB (kibibyte), MiB (mebibyte), v.v ... Đó là một mớ hỗn độn và bối cảnh là điều cần thiết để hiểu ý nghĩa của nó. Xem http://en.wikipedia.org/wiki/Kibibyte để thảo luận về các vấn đề này.


7

Có lẽ là không, bởi vì nó sẽ không nhất quán sử dụng các tiền tố trong một số duy nhất .

Mặc dù tiền tố SI k là viết tắt của 1000, nhưng trong CNTT thường được sử dụng để chỉ 1024 (với một số tiền tố nhị phân ủng hộ ), không có nghĩa gì để thay thế giữa các ý nghĩa này trong cùng một số .



@JdeBP: Lưu ý thú vị. Nó sẽ có được "đúng" (theo nghĩa cơ sở 2) để nói 1440 KB. Tôi chưa bao giờ nghĩ về / nhận ra sự pha trộn của hai "hệ thống" trong số 1,44. +1.
BillP3

3

Bạn đúng trong câu hỏi của bạn. 1 và 4 đúng, 2 và 3 thì không.

Về cơ bản, bạn xác định "nghìn" là 1000 hoặc 1024 và sử dụng số đó cho các phép nhân. Họ không bị tráo đổi xung quanh.

Trong cơ sở hai (nhị phân), gần nhất bạn có thể nhận được tới 1000 là 1024 (2 ^ 10). Đây là cách máy tính thực sự nghĩ về mọi thứ, vì vậy, trong bộ nhớ (RAM), ví dụ, 1MB sẽ là 1048576 byte.

Tuy nhiên, trong cơ sở 10, bạn thực sự có thể có 1000. Ổ đĩa hoạt động như thế này và trên ổ cứng, thông thường 1 MB sẽ là 1000000 byte (mặc dù trạng thái rắn hoạt động ở dạng nhị phân).

Về cơ bản, thực tế là máy tính và thiết bị lưu trữ thường hoạt động hơi khác nhau, do đó, có những định nghĩa khác nhau cho cùng một thứ.


1

Vì vậy, đây là thỏa thuận. (Hầu hết) các máy tính ngày nay hoạt động ở cơ sở 2, không phải cơ sở 10. (Vâng, tôi biết có những trường hợp ngoại lệ, nhưng chúng thực sự những trường hợp đặc biệt.) Đối với mục đích (của bạn), tất cả các máy tính đa năng (và chắc chắn, tất cả người dùng đều sử dụng máy tính đa năng) sử dụng cơ sở 2 cho tất cả xử lý nội bộ. Đơn vị cơ bản là một bit có thể bằng 0 hoặc một. Tám trong số này cùng nhau tạo ra một byte; 16 một từ. Bây giờ, điều này nói chung là ... máy tính 32 bit thường được coi là sử dụng "từ" 32 bit, máy tính 64 bit, từ 64 bit, v.v. Bạn có để ý không? Đây là tất cả sức mạnh của 2. Một máy tính có một "K" hoặc kilobyte bộ nhớ sẽ luôn có 1024 byte bộ nhớ. Một megabyte bộ nhớ sẽ luôn có nghĩa là 1024 x 1024 byte. Một lần nữa, tất cả đều là lũy thừa của 2. Vì vậy, một máy tính có bộ nhớ 64 MB sẽ luôn có 64 x 1024 x 1024 byte. Khi bạn thấy các máy tính được quảng cáo để bán, dung lượng bộ nhớ (RAM) sẽ luôn dựa trên sức mạnh của 2. Bạn sẽ không bao giờ thấy thẻ video, ví dụ, yêu cầu 1GB RAM có nghĩa là một tỷ byte.

Trường hợp sự nhầm lẫn được đưa ra và điều khiến mọi người phát điên, là khi các nhà sản xuất ổ đĩa, trong nỗ lực cung cấp các ổ đĩa lớn hơn và lớn hơn, "Này! Bạn biết đấy, ở các khu vực khác (không phải máy tính), K là 1000, và một M là 1.000.000. " Ví dụ, nếu một vài người đang thảo luận về giá bán của một chiếc xe hơi, và một người gợi ý, "Tôi nghĩ '8K' nghe có vẻ đúng", người kia sẽ tự động hiểu rằng '8K' có nghĩa là 8.000 đô la, (không phải là $ 8.192). Vì vậy, các nhà sản xuất ổ đĩa nói: "Hãy bắt đầu quảng cáo sản phẩm của chúng tôi bằng các biện pháp đó để chúng có âm thanh lớn hơn." Nhưng những người hợp pháp bước vào và nói, "Đợi một chút ở đây. Hầu như tất cả những người, bạn biết,Làm thế nào họ làm việc sẽ khóc dở mếu dở. "Những người quảng cáo thông minh đó trả lời:" Không sao. Vâng, chỉ cần đặt một dấu sao nhỏ bên cạnh dung lượng trên hộp và trong tài liệu của chúng tôi có nội dung như '* 1GB = 1.000.000.000 byte'. Vấn đề đã được giải quyết. "

Vì vậy, ở đây chúng tôi, với tất cả sự nhầm lẫn này. Trích dẫn từ bài viết wiki ở trên, được tham khảo bởi @kreemoweet,

Trong hầu hết các trường hợp, kilobyte tiếp tục được sử dụng để chỉ một sức mạnh mười cũng như sức mạnh của hai.

Và sự nhầm lẫn tiếp tục. Đối với các mục đích thực tế, có lẽ bạn nên giả định rằng dung lượng đĩa dựa trên 10 đơn vị đo cơ sở. Tương tự, dung lượng RAM sẽ (có thể) luôn dựa trên 2 đơn vị cơ sở. Đối với các loại thiết bị và sản phẩm khác, có lẽ nó sẽ phụ thuộc vào công nghệ cơ bản và những gì người quảng cáo nghĩ rằng họ có thể thoát khỏi. Rốt cuộc, lớn hơn là tốt hơn, phải không?

Đối với một số đọc thêm, bạn có thể lướt qua Timeline của tiền tố nhị phân . Nó sẽ không làm cho mọi thứ rõ ràng hơn, nhưng nó một niềm vui đọc.


2
Bạn có chắc chắn đó chỉ là tiếp thị thuần túy? có lẽ nó cũng liên quan đến cấu trúc / tổ chức lưu trữ của chính nó.
barlop

3
-1 Đây không phải là một điều tiếp thị và nó không làm cho ổ đĩa phát ra âm thanh lớn hơn. Đó là một lời giải thích rộng rãi nhưng dù sao cũng hoàn toàn sai. Đó cũng là một suy luận dựa trên sự thiếu hiểu biết tổng thể của chủ đề. Ủy ban kỹ thuật điện quốc tế và Viện kỹ sư điện và điện tử thực sự đưa ra cơ sở hợp lý, liên quan đến việc tạo ra các ngành kỹ thuật khác nhau nói cùng một ngôn ngữ và không gây nhầm lẫn cho nhau, vào năm 1997 trong một bài viết của Người mang tiêu chuẩn IEEE . Đây là rất nhiều một vấn đề kỹ thuật thực tế .
JdeBP

4
Kinh nghiệm của tôi làm việc cho Miniscribe và sau đó là Maxtor vào những năm 1980 và 90 khi một kỹ sư thông báo cho tôi cách khác. Là kỹ sư máy tính, chúng ta có xu hướng hấp dẫn về sức mạnh của 2. Một byte sẽ luôn là 8 bit. Như @barlop cho biết thêm, không giống như bộ nhớ máy tính chính, các ổ đĩa quay có thể có cấu trúc / tổ chức đa dạng rộng rãi. Thậm chí nhiều hơn vì công nghệ ổ đĩa đã tiến bộ đến nỗi số lượng các rãnh trên mỗi rãnh thay đổi từ cạnh trong đến cạnh ngoài của bề mặt ghi. Lưu ý rằng các sector vẫn có 512 byte. (Đó là sức mạnh đáng tiếc của 2 lần nữa).
BillP3

1
Đó là một thiếu kinh nghiệm: một quan điểm hẹp và cận thị về kỹ thuật. Đi và đọc bài viết của Tiêu chuẩn IEEE . Đó chính xác là kiểu chớp mắt "Nhưng mọi người luôn sử dụng sức mạnh của hai người." suy nghĩ, sau đó đi sai lầm khủng khiếp khi nó chạm vào kỹ thuật phần lớn đó là không thiển như thế này, mà điều này đã và đang nhắm vào. Như tôi đã nói, đây là một vấn đề kỹ thuật thực tế và bạn mỉa mai chứng minh chính vấn đề mà nó nhắm đến. Đó không phải là tiếp thị, và nó không phải là làm cho bất cứ điều gì lớn hơn. Đó là tổng số rác chế tạo. Đừng tin điều đó.
JdeBP

1
@JdeBP chắc chắn các kỹ sư chắc chắn đã đưa ra các thuật ngữ kibibyte, v.v. Và tỷ lệ kỹ sư trong thế giới ổ cứng sử dụng nó là bao nhiêu tôi không biết. Tôi đã nghĩ có lẽ họ sẽ biết theo ngữ cảnh ý nghĩa của kilobyte và sẽ không cần đến kibibyte, hoặc có lẽ là không. Có vẻ như BillP3rd nghĩ rằng họ sẽ biết và đó là cơ sở 2, và bạn nghĩ rằng họ cần chỉ định để biết về chính mình. Nhưng tiếp thị sẽ chọn sử dụng đơn vị nhỏ hơn, tiền tố thập phân trên gói. Tôi tự hỏi nếu tiếp thị đã làm điều đó ngay cả trước khi bài viết đó của IEEE.
barlop

0

Vâng, như đó là một thảm họa cú pháp. Bài viết Wiki này giải thích vấn đề và bao gồm một bảng các từ "mới" sẽ được sử dụng. Ở đây trong thế giới thực không ai sử dụng những thuật ngữ đó. Bạn phải sử dụng bối cảnh để xác định định nghĩa bạn đang xem xét.


4
-1 cho "không ai". Tôi sử dụng chúng ở đây trong thế giới thực và tôi ở một mình.
JdeBP

1
Nếu người tiêu dùng bình thường hỏi một nhân viên bán hàng dung lượng bộ nhớ của một máy tính mà họ nghĩ là sẽ mua và được thông báo "4 gibibytes", họ sẽ không biết ý nghĩa của nó là gì. Tương tự như vậy, đại đa số mọi người sẽ không bao giờ nói to "gibibyte, tibibyte, pibibyte, v.v." Nghiêm túc, hãy thử nói "gibibyte" nhanh gấp ba lần bạn có thể. Tôi có thể nói rằng đối với bản thân tôi, ít nhất, tôi chưa bao giờ nghe họ. (Đối với bối cảnh, tôi làm việc cho một công ty phần mềm lớn mà có lẽ bạn đã nghe nói về và thường xuyên đối phó với khối lượng dữ liệu trong terabyte và petabyte quy mô.)
BillP3rd

+1 để đề cập đến những thuật ngữ hài hước đó và hầu hết không sử dụng chúng và sử dụng ngữ cảnh
barlop

1
"không ai" có nghĩa là "không ai cả", đứa trẻ và không bị thay đổi một cách kỳ diệu bởi ngữ cảnh có nghĩa là một cái gì đó khác với ý nghĩa của từ này. Đó là một sự giả dối tuy nhiên bạn cố gắng cắt nó.
JdeBP

1
@JdeBP - xin lỗi Jdebp nhưng muốn không làm như vậy. Chính sự tồn tại của thuật ngữ kibibyte là bằng chứng cho thấy có (và vẫn còn) sự nhầm lẫn về ý nghĩa của nó. Tôi xin lỗi, bạn đã bị mắc kẹt với thuật ngữ này trong một thập kỷ (phải tìm kiếm các ổ cứng với giá trị kibibyte vào năm 2000). Tôi cũng đề nghị bạn làm việc chỉnh sửa bài viết wiki mà tôi đã tham khảo - rõ ràng họ cũng đã sai về việc thiếu sử dụng (họ phải bỏ bạn khỏi danh sách bỏ phiếu).
Jim B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.