Sự khác biệt giữa kibibyte, kilobit và kilobyte là gì?


45

Câu hỏi này khiến tôi băn khoăn về sự khác biệt giữa ba cách đo kích thước này: kibibyte , kilobit kilobyte thông thường.

Tôi hiểu rằng các phép đo này có cách sử dụng khác nhau (tốc độ truyền dữ liệu được đo bằng bit / giây), nhưng tôi không chắc chắn liệu tôi có thể cho biết sự khác biệt giữa Mb và MB và MiB hay không.

Dưới đây là một nhận xét, được sao chép dưới đây, được lấy từ câu trả lời này ( nhấn mạnh của tôi ).

C64 có 65536 byte RAM. Theo quy ước, kích thước bộ nhớ được chỉ định bằng kibiBytes , tốc độ truyền dữ liệu tính bằng kilobit và lưu trữ dung lượng lớn trong bất cứ thứ gì mà các nhà sản xuất nghĩ đến bây giờ là Byte . Ổ cứng sử dụng T, G, M và k trên nhãn, Windows báo cáo kích thước theo Ti , Gi , Miki . Và những đĩa mềm 1,44 MB? Chúng không phải là 1,44 MB hay 1,44MiB, chúng là 1,44 kilokibibytes. Đó là 1440kiB hoặc 1'474'560 byte. - Thứ ba


12
Sẽ có sự nhầm lẫn trong nhiều năm tới. Trong những ngày đầu của máy tính, mọi người phát hiện ra rằng rõ ràng làm việc dễ dàng hơn nhiều với các yếu tố 1024 thay vì 1000 cho máy tính. Do đó, trong nhiều thập kỷ, tiền tố SI tiêu chuẩn "kilo" đã được (và vẫn rất thường xuyên) được sử dụng cho 1024 không chuẩn, và nó đã trở thành một tiêu chuẩn thực tế trong điện toán. Ngoại trừ việc một số người vẫn sử dụng SI 1000. Để loại bỏ mớ hỗn độn, "kibi" hiện được định nghĩa chính thức là yếu tố 1024 - nhưng đã quá muộn để chuyển đổi dễ dàng. "Kilo" sẽ thường xuyên được sử dụng / lạm dụng cho 1024 yếu tố trong một thời gian.
Steve314

Nó sẽ giúp nhận con nuôi nếu họ không chọn các tiền tố mà nghe có vẻ ngu ngốc; thậm chí một từ viết tắt đòi hỏi ai đó phải "khao khát tinh thần" từ đó. Tôi chỉ đơn giản là sẽ không bao giờ sử dụng "kibibyte", v.v.
tgm1024

Câu trả lời:


63
1 KiB (Kibibyte) = 1,024 B (Bytes) (2^10 Bytes)
1 kb  (Kilobit)  =   125 B (Bytes) (10^3 Bits ÷ (8 bits / byte) = 125 B)
1 kB  (Kilobyte) = 1,000 B (Bytes) (10^3 Bytes)

Đó là cách tương tự với bất kỳ tiền tố SI; k(1x10 3 ), M(1x10 6 ), G(1x10 9 ), do đó, bằng phần mở rộng:

1 MiB (Mebibyte) = 1,048,576 B (Bytes) (2^20 Bytes)
1 Mb  (Megabit)  =   125,000 B (Bytes) (10^6 Bits ÷ (8 bits / byte) = 125,000 B)
1 MB  (Megabyte) = 1,000,000 B (Bytes) (10^6 Bytes)

Những cái duy nhất khác một chút là Tiền tố nhị phân IEC (kibi / mebi / gibi, v.v.), bởi vì chúng ở cơ sở 2, không phải cơ sở 10 (ví dụ: tất cả các số bằng 2 một cái gì đó thay vì 10 cái gì đó ). Tôi thích chỉ sử dụng các tiền tố SI vì tôi thấy nó dễ dàng hơn nhiều. Ngoài ra, Canada (quốc gia của tôi) sử dụng hệ thống số liệu, vì vậy, tôi đã quen với, ví dụ 1kg = 1000g(hoặc 1k anything = 1000 base things). Không ai trong số này là sai hay đúng; chỉ cần chắc chắn rằng bạn biết cái nào bạn đang sử dụng và nó thực sự tương đương với cái gì.

Để xoa dịu những người bình luận:

1 Byte (B) = 2 nibbles = 8 bits (b)

Đây là lý do tại sao, nếu bạn đã từng xem qua trình soạn thảo hex, mọi thứ được chia thành hai ký tự thập lục phân; mỗi ký tự hex là kích thước của một cây bút chì và có hai đến một byte. Ví dụ:

198 (decimal) = C6 (hex) = 11000110 (bits)

5
+1 Đề cập rằng có 8 bit trong một byte có thể hữu ích.
paradroid

4
... và đừng quên rằng một nybble là bốn bit (hoặc nửa byte)!
Linker3000

4
Cũng có thể nhận thấy rằng chữ "b" đôi khi được sử dụng không chính xác để viết tắt "byte". Tôi thấy rất nhiều nơi chỉ sử dụng "bit" trong phần rút gọn như MB cho megabyte và Mbit cho megabit và tránh xa "b" hoàn toàn.
James

4
Tiền tố kilo được viết tắt là k, không phải là K.
garyjohn

1
@Redandwhite Không, họ sử dụng cơ sở 10 để đo dung lượng lưu trữ của họ, nhưng máy tính của chúng tôi sử dụng cơ sở 2. Điều này cho thấy sự khác biệt giữa những gì được in trên hộp và những gì hiển thị trong máy tính. Ví dụ: 500GB (box) = 465.7GiB (computer)(và đó là cách họ có được bạn).
vòng tròn

9

Có một vài thuật ngữ cơ bản đơn giản và dễ hiểu:

* A bit      (b)   is the smallest unit of data comprised of just {0,1}
* 1 nibble   (-)   = 4 bits (cutesy term with limited usage; mostly bitfields)
* 1 byte     (B)   = 8 bits (you could also say 2 nibbles, but that’s rare)

Để chuyển đổi giữa các bit và byte (với bất kỳ tiền tố nào), chỉ cần nhân hoặc chia cho tám; đẹp và đơn giản.

Bây giờ, mọi thứ trở nên phức tạp hơn một chút vì có hai hệ thống đo lường các nhóm dữ liệu lớn: thập phânnhị phân . Trong nhiều năm, các lập trình viên và kỹ sư máy tính chỉ sử dụng cùng một thuật ngữ cho cả hai, nhưng sự nhầm lẫn cuối cùng đã gợi lên một số nỗ lực để chuẩn hóa một bộ tiền tố thích hợp.

Mỗi hệ thống sử dụng một bộ tiền tố tương tự có thể được áp dụng cho bit hoặc byte. Mỗi tiền tố bắt đầu giống nhau trong cả hai hệ thống, nhưng các tiền tố nhị phân nghe giống như trò chuyện trẻ con sau đó.

Hệ thống thập phân là cơ sở 10 mà hầu hết mọi người đều quen và sử dụng thoải mái vì chúng tôi có 10 ngón tay. Hệ thống nhị phân là cơ sở 2 mà hầu hết các máy tính đều sử dụng và sử dụng thoải mái vì chúng có hai trạng thái điện áp.

Hệ thống thập phân rõ ràng và dễ sử dụng đối với hầu hết mọi người (nó đủ đơn giản để nhân lên trong đầu chúng ta). Mỗi tiền tố tăng 1.000 (lý do cho điều đó là một vấn đề hoàn toàn khác nhau).

Hệ thống nhị phân khó sử dụng hơn nhiều đối với hầu hết những người không sử dụng máy tính và thậm chí các lập trình viên thường không thể có nhiều số lượng lớn tùy ý trong đầu. Tuy nhiên, đó là một vấn đề đơn giản là bội số của hai. Mỗi tiền tố tăng thêm 1.024. Một Kèo Kiết là 1.024 bởi vì đó là sức mạnh gần nhất từ ​​hai đến thập phân Số thập phân 1.000 (điều này có thể đúng vào thời điểm này, nhưng sự khác biệt tăng nhanh với mỗi tiền tố liên tiếp).

Các số giống nhau cho các bit và byte có cùng tiền tố.

* Decimal:
* 1 kilobyte (kB)  = 1,000 B  = 1,000^1 B           1,000 B
* 1 megabyte (MB)  = 1,000 KB = 1,000^2 B =     1,000,000 B
* 1 gigabyte (GB)  = 1,000 MB = 1,000^3 B = 1,000,000,000 B

* 1 kilobit  (kb)  = 1,000 b  = 1,000^1 b           1,000 b
* 1 megabit  (Mb)  = 1,000 Kb = 1,000^2 b =     1,000,000 b
* 1 gigabit  (Gb)  = 1,000 Mb = 1,000^3 b = 1,000,000,000 b

* …and so on, just like with normal Metric units meters, liters, etc.
* each successive prefix is the previous one multiplied by 1,000



* Binary:
* 1 kibibyte (KiB) = 1,024 B  = 1,024^1 B           1,024 B
* 1 mebibyte (MiB) = 1,024 KB = 1,024^2 B =     1,048,576 B
* 1 gibibyte (GiB) = 1,024 MB = 1,024^3 B = 1,073,741,824 B

* 1 kibibit  (Kib) = 1,024 b  = 1,024^1 b =         1,024 b
* 1 mebibit  (Mib) = 1,024 Kb = 1,024^2 b =     1,048,576 b
* 1 gibibit  (Gib) = 1,024 Mb = 1,024^3 b = 1,073,741,824 b

* …and so on, using similar prefixes as Metric, but with funny, ebi’s and ibi’s
* each successive prefix is the previous one multiplied by 1,024

Lưu ý rằng sự khác biệt giữa hệ thập phân và hệ nhị phân bắt đầu nhỏ (ở mức 1K, chúng chỉ cách nhau 24 byte, hoặc cách nhau 2,4%), nhưng tăng dần theo từng cấp độ (ở mức 1G, chúng cách nhau> 70MiB, hoặc 6,9%).

Theo nguyên tắc chung, các thiết bị phần cứng sử dụng các đơn vị thập phân (cho dù là bit hoặc byte) trong khi phần mềm sử dụng nhị phân (thường là byte).

Đây là lý do mà một số nhà sản xuất, đặc biệt là ổ đĩa mfss, thích sử dụng đơn vị thập phân, vì nó làm cho kích thước ổ đĩa nghe lớn hơn, nhưng người dùng cảm thấy thất vọng khi họ thấy nó có ít hơn họ mong đợi khi họ thấy Windows et. al. báo cáo kích thước trong nhị phân. Ví dụ: 500GB = 476GiB, do đó, trong khi ổ đĩa được tạo ra để chứa 500GB và được dán nhãn như vậy, Máy tính của tôi sẽ hiển thị nhị phân 476GiB (nhưng như là 476GB Thẻ), vì vậy người dùng tự hỏi 23GB kia đã đi đâu. (Các nhà sản xuất ổ đĩa thường thêm chú thích vào các gói cho biết kích thước được định dạng của Cameron là ít hơn, điều này gây hiểu lầm vì chi phí hệ thống tập tin không là gì so với sự khác biệt giữa các đơn vị thập phân và nhị phân.)

Các thiết bị mạng thường sử dụng bit thay vì byte vì lý do lịch sử và ISP thường thích quảng cáo bằng bit vì nó làm cho tốc độ của các kết nối mà chúng cung cấp âm thanh lớn hơn: 12Mibps thay vì chỉ 1,5MiBps. Họ thậm chí thường trộn và khớp các bit và byte và thập phân và nhị phân. Ví dụ: bạn có thể đăng ký vào thứ mà ISP gọi là đường dây 12MBps của Nhật Bản, nghĩ rằng bạn đang nhận được 12MiBps nhưng thực tế chỉ nhận được 1,43MiBps (12.000.000 / 8/1024/1024).


2
@endolith, không đúng. Trước hết, thực sự, hoặc ít nhất là trong quá khứ, một số nhà sản xuất ổ đĩa sử dụng các đơn vị nhị phân. Thứ hai, bạn đã bỏ lỡ điểm. Nếu họ muốn, họ có thể đặt 73.400.320 trên ổ đĩa thực sự là 70M (i) B thay vì 66. Họ sử dụng 70.000.000 vì sử dụng nó rẻ hơn và vẫn gọi nó là 70 MB. Đó là góc cắt đơn giản và nhiều nhà sản xuất làm điều đó. Nhìn vào thức ăn; thay vì 500G, họ sẽ đặt 454G vì nó bằng 1LB. Tồi tệ hơn, thay vì 454G, họ sẽ đặt 450G và đổ lỗi cho 4G bị thiếu khi làm tròn số. Đó không phải là một âm mưu, nó cắt giảm chi phí.
Synetech

1
Vui lòng cung cấp một số ví dụ về các nhà sản xuất ổ cứng sử dụng các đơn vị nhị phân.
endolith

1
@endolith, đây không phải là một trang lịch sử. Có lẽ khi tôi dọn dẹp mùa xuân và đào một số ổ đĩa cũ, tôi sẽ đăng một bức ảnh hoặc một cái gì đó. Nếu không, bạn có thể đến một bảo tàng lịch sử máy tính hoặc cửa hàng máy tính mẹ và pop và tìm một số ổ cứng cũ nếu nó quan trọng với bạn. Ngày nay, hầu hết các mfss cố tình sử dụng nhãn làm cho mọi thứ nghe có vẻ lớn hơn. Như tôi đã nói, họ có thể tạo ra 73.400.320 byte để tạo ổ đĩa 70 MB nếu họ muốn, nhưng tại sao phải bận tâm khi họ có thể rẻ ra mà vẫn gọi nó là 70 MB? Một lần nữa, đó không phải là một âm mưu, đó là sự lừa dối tiếp thị phổ biến.
Synetech

2
Tôi đã xem qua các tài liệu lưu trữ bitavers và tất cả các ví dụ tôi tìm thấy là số thập phân. Chuyện hoang đường khiến các nhà sản xuất chuyển từ nhị phân sang thập phân tại một số điểm để đánh lừa khách hàng là điều xấu. Chúng không được viết bởi các bộ phận tiếp thị, nhưng bởi các kỹ sư sử dụng các đơn vị tiêu chuẩn mà các kỹ sư sử dụng. Thật hợp lý và lành mạnh khi gọi ổ đĩa IBM 3340 70.000.000 byte là "70 MB". Đó là những gì '' mega- '' luôn có nghĩa và đó là những gì người dùng mong đợi. Gọi nó là "66 MB" ở một số nơi và "68.359 KB" ở những nơi khác, như Microsoft Windows, là điên rồ.
endolith

1
@endolith, không ai nói rằng họ chuyển sang thập phân để lừa đảo, chỉ là họ tiếp thị chúng theo cách đó với mục đích mặc dù họ biết về sự nhầm lẫn và có thể tạo ra ổ đĩa 73.400.320 byte thay vì chỉ 70.000.000 mà không phải là số tròn trong máy tính. Đối với tuyên bố của bạn về nó thì luôn luôn có ý nghĩa rằng, đã có một chủ đề ở đây về việc khi các đơn vị nhị phân được sử dụng và đã lâu rồi, chắc chắn trước khi máy tính trở thành sản phẩm tiêu dùng.
Synetech

-4

Một số câu trả lời không chính xác.

Trước tiên hãy tạo một số lưu ý:

Tiền tố "kilo" có nghĩa là 1 000. Tiền tố "kilo" cho bất cứ điều gì có nghĩa là 1 000 của mặt hàng đó. Điều tương tự cũng đúng với "mega" hoặc triệu, "giga" hoặc tỷ, "tera" hoặc nghìn tỷ, v.v.

Lý do 1 024 tồn tại thay vì chỉ đơn giản là có 1 000 là vì cách thức hoạt động của số học nhị phân. Nhị phân, như tên gọi của nó, là một hệ thống cơ sở 2 (nó có 2 chữ số: 0, 1). Nó chỉ có thể thực hiện số học với hai chữ số, trái ngược với hệ thống cơ sở 10 mà chúng ta sử dụng hàng ngày (0, 1, 2 ... 9), có mười chữ số.

Để có được số 1 000 ( kilo ) bằng số học nhị phân, cần phải thực hiện phép tính dấu phẩy động. Điều này có nghĩa là một chữ số nhị phân phải được thực hiện mỗi thao tác cho đến khi đạt được 1 000. Trong hệ thống cơ sở 10, 1 000 = 10 3 (bạn luôn tăng 10 lên công suất ở cơ sở 10), một phép tính rất dễ dàng và nhanh chóng để máy tính thực hiện mà không có "phần dư", nhưng trong hệ thống cơ sở 2, đó là không thể tăng 2 (bạn luôn tăng 2 lên công suất trong cơ sở 2) cho bất kỳ số nguyên dương nào để có được 1 000. Phải sử dụng phép toán dấu phẩy động hoặc phép cộng dài và phải mất nhiều thời gian hơn để thực hiện so với phép tính số nguyên 2 10 = 1024.

Bạn có thể nhận thấy rằng 2 10 = 1 024 rất gần với 1 000 và 1 024 đến 1 con số đáng kể là 1 000 (xấp xỉ rất tốt) và trở lại khi tốc độ CPU chậm như một con chó già và bộ nhớ rất hạn chế , đây là một xấp xỉ khá tốt và rất dễ làm việc, chưa kể nhanh để thực hiện.

Vì lý do này, các thuật ngữ với "kilo", "mega", "giga", v.v., tiền tố bị mắc kẹt với các số liệu không chính xác (1 024, 2 048, 4 096, v.v.). Chúng không bao giờ có nghĩa là số chính xác, chúng là xấp xỉ nhị phân của 10 số cơ sở. Chúng chỉ đơn giản phát sinh như những từ biệt ngữ mà những người "công nghệ" đã sử dụng.

Để làm cho vấn đề thậm chí phức tạp hơn, JEDEC đã tạo ra các tiêu chuẩn riêng cho các đơn vị được sử dụng trong các mạch nhớ bán dẫn. Hãy so sánh một số đơn vị JEDEC với các đơn vị SI (tiêu chuẩn quốc tế):

Kb = Kilobit (JEDEC, 1 024 bit. Lưu ý chữ hoa 'K' và chữ thường 'b')
kB = kiloBit (SI, 1 000 bit. Lưu ý chữ thường 'k' và chữ hoa 'B')

b = bit (JEDEC, lưu ý chữ thường 'b')
b = ??? (SI không định nghĩa từ 'bit' nên việc sử dụng nó có thể tùy ý)

B = byte (JEDEC, 8 bit. Lưu ý chữ hoa 'B')
B = ???? (SI không định nghĩa từ "byte" và "B" được sử dụng cho "Bel" [như trong DeciBel])

KB = kilobyte (JEDEC, 1 024 byte. Lưu ý chữ hoa 'K' và 'B')
kb = kilobyte (SI, 1 000 byte. Lưu ý sử dụng chữ thường 'k' và chữ thường 'B')

Vấn đề là, những nơi khác nhau sử dụng các tiền tố khác nhau với các định nghĩa khác nhau. Không có quy tắc cứng và nhanh nào về việc bạn nên sử dụng quy tắc nào, nhưng phải nhất quán với quy tắc bạn sử dụng.

Do bỏ phiếu xuống, cho phép tôi làm rõ lý do tại sao bạn không thể tạo 1 000 trong nhị phân bằng cách nâng nó lên bất kỳ số nguyên dương nào.

Hệ thống nhị phân:

+----------------------------------------------------------------------------------+
| 1 024ths | 512ths | 256ths | 128ths | 64ths | 32nds | 16ths | 8ths | 4s | 2s | 0 |
+-----------------------------------------------------------------------------------

Lưu ý rằng trong hệ thống nhị phân, các cột tăng gấp đôi mỗi lần. Điều này trái ngược với hệ thống cơ sở 10 tăng 10 lần mỗi lần:

+--------------------------------------------------------------------------+
| 1 000 000ths | 100 000ths | 10 000ths | 1 000ths | 100ths | 10s | 1s | 0 |
+--------------------------------------------------------------------------+

10 quyền hạn đầu tiên trong hệ nhị phân (cơ sở 2) là:

2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1 024

Như bạn có thể thấy, không thể nâng nhị phân 2 lên bất kỳ số nguyên dương nào để đạt 1 000.


3
Tôi tin rằng bạn không chính xác khi nói rằng số 1000 cần số học dấu phẩy động. Bạn có thể biểu diễn bất kỳ số tự nhiên nào bằng cách sử dụng bất kỳ loại hệ thống đánh số nào. Trên thực tế, số nhị phân tương đương 1000 là 1111101000 .
Doktoro Reichard

Doktoro, xin hãy nhớ rằng chúng tôi đang làm việc trong hệ thống nhị phân, hoặc cơ sở 2, vì vậy trên thực tế bạn là người không chính xác. Dưới đây là 10 quyền hạn đầu tiên của 2 trong nhị phân (cơ sở 2): 2 ^ 0 = 1. 2 ^ 1 = 2. 2 ^ 3 = 4. 2 ^ 4 = 8. 2 ^ 5 = 16. 2 ^ 6 = 64 . 2 ^ 7 = 128. 2 ^ 8 = 256. 2 ^ 9 = 512. 2 ^ 10 = 1024. Lưu ý rằng câu trả lời là số mũ, nó tăng gấp đôi mỗi khi bạn tăng số mũ lên 1. Vì vậy, bạn thấy, nó không phải là có thể tăng một nhị phân 2 (một SỐ 2 ... không phải là cơ sở mười 2) cho bất kỳ số nguyên dương nào để tạo 1 000. Tôi đánh giá cao việc bỏ phiếu xuống như nhau.
dùng3005790

Điều này không giải thích rằng khác nhau giữa một bit và một byte. Trên thực tế có một "quy tắc nhanh cứng" 1 Kb là một nghìn bit 1KB là một nghìn byte. Có một sự khác biệt lớn. 8 Kb là 1 KB.
Ramhound

3
Mặc dù tuyên bố này là chính xác, bạn vẫn không cần thực hiện bất kỳ loại số học dấu phẩy động nào. Bạn hiểu quyền hạn của 2, vì vậy bạn cũng có thể hiểu rằng 1111101000 = 2 ^ 9 + 2 ^ 8 + 2 ^ 7 + 2 ^ 6 + 2 ^ 5 + 2 ^ 3 = 1000.
Doktoro Reichard

1
Tôi không tin rằng "Chúng không bao giờ có nghĩa là số chính xác, chúng là xấp xỉ nhị phân của số 10 cơ sở" là đúng; Tôi nghĩ rằng đó chỉ là kết quả của phần cứng bị giới hạn trong việc lưu trữ các số và số 0 và địa chỉ phần cứng bằng cách sử dụng các thanh ghi nhị phân. Cả hai đều là căn cứ 2; Tôi không liên quan đến tính toán xấp xỉ 10 cơ sở. Ngoài ra, tôi không thấy điểm bạn đang thực hiện về tính toán. Nó không giống như đầu ra của máy tính sẽ hiển thị 1024 trong đó nó thực sự có ý định hiển thị 1000 hoặc hiển thị 1000 khi bên trong nó sẽ là 1024. Bạn đang đề cập đến những tính toán nào?
Arjan
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.