Liệu một byte chứa 8 bit, hay 9?


56

Tôi đã đọc trong hướng dẫn lập trình lắp ráp này rằng 8 bit được sử dụng cho dữ liệu trong khi 1 bit là tương đương, sau đó được sử dụng để phát hiện lỗi chẵn lẻ (do lỗi phần cứng hoặc nhiễu điện).

Điều này có đúng không?


5
Xem cs.stackexchange.com/a/19851/584 để biết thảo luận về một byte có thể là gì.
AProgrammer

63
Bài viết đó chứa đầy vô nghĩa và bạn nên bỏ qua nó.
David Schwartz

12
Nếu bạn muốn trở thành người phạm tội, chỉ cần gọi chúng là "octet". Bài viết đó hoặc được viết với một bộ xử lý rất cụ thể (một trong số đó phải giữ các bit chẵn lẻ trong ROM vì một số lý do ...) hoặc chỉ là wack. Ví dụ, các vi mạch PIC sử dụng độ dài từ 14 bit. Toàn bộ bộ nhớ chương trình được tổ chức trong một mảng N x 14 bit.
Nick T

13
@NickT: Tuy nhiên, chúng không giống nhau. Một octet luôn là 8 bit, một byte có thể là bất cứ thứ gì.
Jörg W Mittag

4
Bài viết có thể đã tham khảo các cơ chế sửa lỗi bộ nhớ được sử dụng trong một số PC IBM đầu tiên, nhưng nói rằng "byte là 8 bit dữ liệu + 1 bit chẵn lẻ" là hoàn toàn vô nghĩa. Ví dụ, CD-ROM thường sử dụng các cơ chế sửa lỗi tham lam hơn nhiều - một CD âm thanh thông thường sẽ sử dụng 8 byte cho mỗi 24 byte dữ liệu âm thanh. Nhưng phần quan trọng nhất là bạn không quan tâm . Ở tất cả. Nó độc quyền với cơ chế lưu trữ bộ nhớ thực tế - CPU không quan tâm, mã của bạn không quan tâm.
Luaan

Câu trả lời:


78

Một byte dữ liệu là tám bit, có thể có nhiều bit hơn trên mỗi byte dữ liệu được sử dụng ở HĐH hoặc thậm chí mức phần cứng để kiểm tra lỗi (bit chẵn lẻ hoặc thậm chí là sơ đồ phát hiện lỗi nâng cao hơn), nhưng dữ liệu là tám bit và bất kỳ bit chẵn lẻ nào thường vô hình với phần mềm. Một byte đã được chuẩn hóa có nghĩa là 'tám bit dữ liệu'. Văn bản không sai khi nói rằng có thể có nhiều bit dành riêng cho việc lưu trữ một byte dữ liệu hơn tám bit dữ liệu, nhưng chúng không được coi là một phần của byte mỗi se, chính văn bản chỉ ra thực tế này.

Bạn có thể thấy điều này trong phần sau của hướng dẫn:

Doubleword: a 4-byte (32 bit) data item

4 * 8 = 32, nó thực sự có thể chiếm 36 bit trên hệ thống nhưng đối với mục đích và mục đích của bạn, nó chỉ có 32 bit.


5
Chà, nếu phần cứng thực hiện phát hiện lỗi, nó có thể sẽ làm như vậy với khối bộ nhớ lớn hơn một byte, giống như với các cung từ 512 byte hoặc ... bằng cách này, bạn có thể giảm chi phí bộ nhớ thêm cần thiết. Chỉ cần làm rõ: ngay cả khi sửa lỗi, phần cứng vẫn sử dụng 8 bit cho mỗi byte cộng với một số bit cho mỗi "khối" dữ liệu, có thể lớn hơn nhiều so với một byte.
Bakuriu

11
Lưu ý rằng có các hệ thống với các byte không 8 bit có thể nhìn thấy bằng phần mềm. Xem nền tảng nào có thứ gì khác ngoài char 8 bit? câu hỏi tại StackOverflow.
Ruslan

3
Vâng, họ thực sự tồn tại. Mặc dù liên kết cụ thể đó đang nói về ký tự không 8 bit. Vì nó là: byte được sử dụng để chỉ đơn giản là số bit mà một hệ thống nhất định đã sử dụng để lưu trữ một 'char', thấp đến sáu bit. Nhưng IIRC, nó được chuẩn hóa trong đặc tả kỹ thuật của IEC-80000 rằng một byte là 8 bit. Khi bạn rời khỏi các hệ thống chính thống, bạn sẽ tìm thấy những điều kỳ lạ, và các tiêu chuẩn không phải là luật.
JustAntherSoul

3
@JustAnotherSoul: Và có các tiêu chuẩn cạnh tranh, định nghĩa byte là "ít nhất 8 bit" hoặc theo các cách khác. Thật thú vị khi thấy những thập kỷ sau định nghĩa về sự thay đổi byte trong tâm trí của mọi người. Quay lại thời điểm byte không đồng nhất về kiến ​​trúc đơn giản là đơn vị địa chỉ nhỏ nhất trong kiến ​​trúc của bạn (xem các PDP khác nhau để biết ví dụ). Đây cũng là lý do mà trong sự ra đời của internet, thuật ngữ octet đã được sử dụng để mô tả dữ liệu trên dây, vì byte không phải là một từ phổ biến cho một đoạn dữ liệu 8 bit.
PlasmaHH

2
@JustAnotherSoul lưu ý rằng chartrong C (đó là nội dung của liên kết) chính xác là đơn vị bộ nhớ có thể định địa chỉ nhỏ nhất. Nó chỉ được gọi là char , nhưng C Standard làm cho nó đồng nghĩa với byte .
Ruslan

48

Theo truyền thống, một byte có thể là bất kỳ kích thước nào, và chỉ là đơn vị bộ nhớ có địa chỉ nhỏ nhất. Ngày nay, các byte 8 bit đã được chuẩn hóa khá nhiều cho phần mềm. Như JustAntherSoul đã nói, phần cứng có thể lưu trữ nhiều bit hơn 8 bit dữ liệu.

Nếu bạn đang làm việc trên các thiết bị logic có thể lập trình, như FPGA, bạn có thể thấy rằng bộ nhớ trong của chúng thường có địa chỉ là các khối 9 bit và là tác giả HDL, bạn có thể sử dụng bit thứ 9 đó để kiểm tra lỗi hoặc chỉ để lưu trữ số lượng lớn hơn dữ liệu trên mỗi "byte". Khi mua chip bộ nhớ cho phần cứng tùy chỉnh, bạn thường có lựa chọn đơn vị địa chỉ 8 hoặc 9 bit (hoặc 16/18, 32/4, v.v.), và tùy thuộc vào việc bạn có "byte" 9 bit hay không bạn làm với bit thứ 9 đó nếu bạn chọn có nó.


10
Thông thường, khi có một nhóm dữ liệu là một đơn vị logic nhưng chứa nhiều hơn / ít hơn 8 bit, nó được gọi là "từ". Ví dụ, một số bộ xử lý sử dụng từ lệnh 40 bit.
Devsman

3
+1. Ngẫu nhiên, đã có kiến ​​trúc với cả "con trỏ bit" và "con trỏ byte". Trong các kiến ​​trúc như vậy, một byte về mặt kỹ thuật không phải là "đơn vị bộ nhớ có thể định địa chỉ nhỏ nhất" (vì bạn có thể giải quyết từng bit một cách độc lập), mặc dù khó có thể nói ngắn gọn nó gì . Tôi đoán đó là một loại "Tôi biết điều đó khi tôi nhìn thấy nó". :-P
ruakh

18
"Octet" là từ được sử dụng theo truyền thống có nghĩa là "Tôi gọi nó là byte, nhưng tôi thực sự có nghĩa là chính xác 8 bit" cho các giao thức giao tiếp khác nhau giữa các hệ thống có thể có kích thước byte khác nhau. Nhưng những ngày này, sử dụng byte để chỉ bất cứ điều gì ngoài 8 bit là lỗi thời.
wnoise

@Devsman Không nhất thiết. Ví dụ, chip x86 có các từ 32 bit và 8 bit byte. Một byte là kích thước địa chỉ nhỏ nhất. Từ này được định nghĩa mơ hồ hơn một chút, nhưng có xu hướng là kích thước thuận tiện nhất để làm việc; tức là độ dài toán hạng dự kiến ​​của hầu hết các hướng dẫn.
Ray

Điều này nên được đánh dấu là câu trả lời đúng, nó là chính xác hơn.
awiebe

32

Văn bản đó là từ rất kém. Ông gần như chắc chắn đang nói về RAM ECC (mã sửa lỗi) .

Ram ECC thường sẽ lưu trữ thông tin có giá trị 8 bit bằng cách sử dụng 9 bit. Bit-per-byte thêm được sử dụng để lưu trữ mã sửa lỗi.

ECC so với không ECC (Trong cả hai trường hợp, mỗi byte được trải đều trên mọi chip. Hình ảnh lịch sự của Hệ thống Puget )

Đây là tất cả hoàn toàn vô hình cho người dùng phần cứng. Trong cả hai trường hợp, phần mềm sử dụng RAM này thấy 8 bit mỗi byte.


Bên cạnh đó: các mã sửa lỗi trong RAM thường không thực sự là 1 bit trên mỗi byte; chúng thay vì 8 bit trên 8 byte. Điều này có cùng không gian trên không, nhưng có một số lợi thế bổ sung. Xem BÍ MẬT để biết thêm.


12
RAM chẵn lẻ và RAM ECC là những thứ khác nhau. RAM chẵn lẻ lưu trữ một bit bổ sung cho mỗi miền lỗi, có thể phát hiện tất cả các lỗi một bit và không có lỗi hai bit và không thể sửa chữa gì. ECC lưu trữ một số bit bổ sung cho mỗi miền lỗi, có thể phát hiện và sửa tất cả các lỗi một bit, có thể phát hiện nhưng không sửa tất cả các lỗi hai bit và có thể bắt được một số lỗi lớn hơn. RAM chẵn lẻ ngày nay rất hiếm, vì đã được thay thế gần như hoàn toàn bởi RAM ECC.
Đánh dấu

1
@Mark: Tôi đã gợi ý rằng trong đoạn cuối của tôi, có nhiều chi tiết hơn trong liên kết. RAM chẵn lẻ về cơ bản là không tồn tại những ngày này vì mã sửa lỗi (72,64) có cùng chi phí với mã chẵn lẻ (9,8).
BlueRaja - Daniel Pflughoeft

7
Trong khi bạn gợi ý về nó, bạn cũng nêu ra những điều khiến nó không chính xác / khó hiểu. RAM ECC không "lưu trữ thông tin có giá trị 8 bit bằng cách sử dụng 9 bit". Nói rằng ngụ ý rằng bạn có thể thực hiện ECC trong 8 bit bằng 9 bit, điều này là không thể. Đối với 8 bit thông tin rời rạc, 1 bit thừa là đủ để phát hiện , không đúng, lỗi bit đơn. Các ECC sử dụng số bit hoặc byte lớn hơn để chứa dữ liệu đủ để sửa lỗi cho các nhóm dữ liệu, thường lớn hơn một byte đơn. Mặc dù điều này có thể trung bình thêm một bit trên 8 bit, nhưng không thể chia nhỏ thành chỉ liên kết 1 bit với mỗi 8 bit.
Makyen

Có sơ đồ 36 bit (từ 32 bit + ECC 4 bit) cho phép sửa lỗi một bit và phát hiện lỗi hai bit. Mặc dù bạn có thể chia nó một cách hợp lý thành 8 bit dữ liệu + 1 bit ECC, nhưng nó không thể / không hoạt động theo cách đó. Cần có đủ 4 bit ECC, bao gồm 32 bit dữ liệu.
Zenilogix

@Zenilogix và những người khác đã lặp lại điều tương tự: Tôi hiểu rất rõ ECC hoạt động như thế nào và không có gì tôi nói là không chính xác. Tôi chưa bao giờ tuyên bố ECC 8 bit có thể được thực hiện với 9 bit, tôi nói RAM ECC sử dụng 9 bit cho mỗi byte lưu trữ. Làm thế nào ECC hoạt động là hoàn toàn ngoài phạm vi cho câu hỏi này, đó là lý do tại sao tôi để các chi tiết như là một bên với một liên kết. Hãy dừng tất cả các ý kiến ​​pedantic.
BlueRaja - Daniel Pflughoeft

16

Nói chung, câu trả lời ngắn gọn là một byte là 8 bit. Điều này đơn giản hóa vấn đề (đôi khi đến mức không chính xác), nhưng là định nghĩa mà hầu hết mọi người (bao gồm một số lượng lớn lập trình viên) đều quen thuộc và định nghĩa gần như mọi người mặc định (bất kể họ có bao nhiêu byte có kích thước khác nhau ' đã phải làm việc với).

Cụ thể hơn, một byte là đơn vị bộ nhớ có địa chỉ nhỏ nhất cho kiến ​​trúc đã cho và thường đủ lớn để chứa một ký tự văn bản. Trên hầu hết các kiến ​​trúc hiện đại, một byte được định nghĩa là 8 bit; ISO / IEC 80000-13 cũng chỉ định rằng một byte là 8 bit, cũng như sự đồng thuận phổ biến (có nghĩa là nếu bạn đang nói về, các byte 9 bit, bạn sẽ gặp nhiều rắc rối trừ khi bạn rõ ràng gặp rắc rối nói rằng bạn không có nghĩa là byte bình thường).

Tuy nhiên, có những trường hợp ngoại lệ cho quy tắc này. Ví dụ:

Vì vậy, trong hầu hết các trường hợp, một byte thường sẽ là 8 bit. Nếu không, nó có thể là 9 bit và có thể hoặc không phải là một phần của từ 36 bit.


8

Lưu ý rằng thuật ngữ byte không được xác định rõ nếu không có ngữ cảnh. Theo như kiến ​​trúc máy tính có liên quan, bạn có thể giả sử rằng một byte là 8 bit, ít nhất là đối với các kiến ​​trúc hiện đại. Điều này phần lớn được chuẩn hóa bởi các ngôn ngữ lập trình như C, yêu cầu các byte phải có ít nhất 8 bit nhưng không cung cấp bất kỳ đảm bảo nào cho các byte lớn hơn, làm cho 8 bit trên mỗi byte là giả định an toàn duy nhất.

Có những máy tính có đơn vị địa chỉ lớn hơn 8 bit (thường là 16 hoặc 32), nhưng những đơn vị đó thường được gọi là từ máy, không phải byte. Ví dụ: DSP với các từ RAM 32K 32 bit sẽ được quảng cáo là có 128 KB hoặc RAM, không phải 32 KB.

Mọi thứ không được xác định rõ khi nói đến các tiêu chuẩn truyền thông. ASCII vẫn được sử dụng rộng rãi và nó có byte 7 bit (rất phù hợp với byte 8 bit trên máy tính). Bộ thu phát UART vẫn được sản xuất để có kích thước byte có thể định cấu hình (thông thường, bạn có thể chọn ít nhất từ ​​6, 7 đến 8 bit cho mỗi byte, nhưng 5 và 9 không phải là chưa từng thấy).


6

Một byte thường được định nghĩa là đơn vị không gian địa chỉ bộ nhớ riêng nhỏ nhất. Nó có thể là bất kỳ kích thước. Đã có kiến ​​trúc với kích thước byte ở bất cứ đâu trong khoảng từ 6 đến 9 bit, thậm chí có thể lớn hơn. Ngoài ra còn có các kiến ​​trúc trong đó đơn vị địa chỉ duy nhất là kích thước của xe buýt, trên các kiến ​​trúc như vậy chúng ta có thể nói rằng chúng chỉ đơn giản là không có byte hoặc byte có cùng kích thước với từ (trong một trường hợp cụ thể mà tôi biết là sẽ được 32 bit); dù bằng cách nào, nó chắc chắn không phải là 8 bit. Tương tự như vậy, có các kiến ​​trúc có thể định địa chỉ bit, trên các kiến ​​trúc đó, một lần nữa chúng ta có thể lập luận rằng các byte đơn giản là không tồn tại hoặc chúng ta có thể lập luận rằng các byte là 1 bit; một trong hai cách là một định nghĩa hợp lý, nhưng 8 bit chắc chắn là sai.

Trên nhiều kiến ​​trúc mục đích chung chính, một byte chứa 8 bit. Tuy nhiên, điều đó không được đảm bảo. Càng đi xa khỏi CPU chính và / hoặc từ các CPU có mục đích chung, bạn càng có khả năng gặp phải các byte không phải là 8 bit. Điều này đi xa đến mức một số phần mềm có tính di động cao thậm chí còn làm cho kích thước có thể cấu hình được. Ví dụ, các phiên bản cũ hơn của GCC chứa một macro được gọi là BITS_PER_BYTE(hoặc một cái gì đó tương tự), cấu hình kích thước của một byte cho một kiến ​​trúc cụ thể. Tôi tin rằng một số phiên bản cũ hơn của NetBSD có thể được tạo để chạy trên các kiến ​​trúc không phải là 8 bit trên mỗi byte.

Nếu bạn thực sự muốn nhấn mạnh rằng bạn đang nói về một lượng chính xác 8 bit thay vì dung lượng bộ nhớ có thể định địa chỉ nhỏ nhất, tuy nhiên có thể lớn, bạn có thể sử dụng thuật ngữ octet , ví dụ được sử dụng trong nhiều RfC mới hơn.


2
Tiêu chuẩn C và C ++ có macro được xác định trước CHAR_BIT(tìm thấy trong limits.h), tôi không biếtBITS_PER_BYTE
njuffa

3

Khi tôi bắt đầu lập trình vào năm 1960, chúng tôi có các từ 48 bit với 6 bit byte - chúng không được gọi tên đó sau đó, chúng được gọi là các ký tự. Sau đó, tôi làm việc trên máy tính Golem với các từ 75 bit và 15 bit byte. Sau đó, 6 byte là chuẩn, cho đến khi IBM ra mắt với 360 và ngày nay, một byte thường tương đương với một octet, tức là 8 bit dữ liệu. Một số phần cứng có các bit bổ sung để phát hiện lỗi và có thể sửa lỗi, nhưng phần mềm này không thể truy cập được.


3

Một byte là 8 bit.

Trong quá khứ xa xôi, có nhiều định nghĩa khác nhau về từ nhớ và byte. Gợi ý rằng sự mơ hồ này là phổ biến hoặc phổ biến trong cuộc sống ngày nay là sai.

Kể từ ít nhất là cuối những năm 1970, một byte đã được 8 bit. Dân số đông đảo của máy tính gia đình và PC đều sử dụng một cách rõ ràng một byte làm giá trị 8 bit trong tài liệu của họ, cũng như tất cả các bảng dữ liệu và tài liệu cho ổ đĩa mềm, ổ đĩa cứng và PROM / EPROM / EEPROM / Flash EPROM / Bộ nhớ chip SRAM / SDRAM mà tôi đã đọc trong khoảng thời gian đó. (Và cá nhân tôi đã đọc rất nhiều trong số chúng ngay trong khoảng thời gian đó.) Ethernet và một vài giao thức truyền thông khác nổi bật với tôi như bất thường khi nói về octet.

Sự mơ hồ của thuật ngữ byte tự nó là một điều hiếm gặp và tối nghĩa. Rất, rất ít dân số lập trình viên, kỹ sư thiết kế, kỹ sư kiểm tra, nhân viên bán hàng, kỹ sư dịch vụ hoặc người đánh bạc trung bình trong 30 năm trở lên sẽ nghĩ nó có ý nghĩa gì đó ngoài giá trị 8 bit, nếu họ nhận ra từ này .

Khi một byte được xử lý bởi phần cứng, chẳng hạn như khi được lưu trữ trong chip bộ nhớ hoặc được truyền thông dọc theo dây, phần cứng có thể thêm dữ liệu dư thừa vào byte. Điều này sau đó có thể hỗ trợ trong việc phát hiện lỗi phần cứng để có thể nhận ra và loại bỏ dữ liệu không đáng tin cậy (ví dụ: chẵn lẻ, tổng kiểm tra, CRC). Hoặc nó có thể cho phép sửa lỗi dữ liệu và dữ liệu được phục hồi (ví dụ ECC). Dù bằng cách nào, dữ liệu dư thừa sẽ bị loại bỏ khi byte được lấy hoặc nhận để xử lý thêm. Byte vẫn là giá trị trung tâm 8 bit và dữ liệu dự phòng vẫn là dữ liệu dự phòng.


2

Đầu tiên, hướng dẫn mà bạn đang tham khảo dường như khá lỗi thời và dường như được hướng đến các phiên bản lỗi của bộ xử lý x86, mà không nêu rõ, vì vậy rất nhiều điều bạn đọc ở đó sẽ không được người khác hiểu (ví dụ: nếu bạn tuyên bố rằng một WORD là 2 byte, mọi người sẽ không biết bạn đang nói về cái gì, hoặc họ sẽ biết rằng bạn đã được dạy dựa trên các bộ xử lý x86 rất lỗi thời và sẽ biết những gì sẽ xảy ra).

Một byte là bất cứ số bit nào mà ai đó quyết định. Nó có thể là 8 bit, hoặc 9 bit, hoặc 16 bit, bất cứ thứ gì. Trong năm 2016, trong hầu hết các trường hợp, một byte sẽ là tám bit. Để an toàn, bạn có thể sử dụng thuật ngữ octet - một octet luôn luôn, luôn luôn, tám bit.

Sự nhầm lẫn thực sự ở đây là hai câu hỏi khó hiểu: 1. Số bit trong một byte là bao nhiêu? 2. Nếu tôi muốn chuyển một byte từ nơi này sang nơi khác hoặc nếu tôi muốn lưu trữ một byte, sử dụng các phương tiện vật lý thực tế, tôi sẽ làm thế nào? Câu hỏi thứ hai thường ít được bạn quan tâm, trừ khi bạn làm việc tại một công ty sản xuất modem, hoặc ổ cứng hoặc ổ SSD. Trong thực tế, bạn quan tâm đến câu hỏi đầu tiên, và đối với câu hỏi thứ hai, bạn chỉ cần nói "tốt, ai đó sẽ chăm sóc nó".

Bit chẵn lẻ được đề cập là một cơ chế nguyên thủy giúp phát hiện rằng khi một byte được lưu trữ trong bộ nhớ và sau đó byte được đọc, bộ nhớ đã bị thay đổi do một số sự cố. Điều đó không tốt lắm, vì nó sẽ không phát hiện ra rằng hai bit đã bị thay đổi nên một sự thay đổi có thể không bị phát hiện và nó không thể phục hồi từ vấn đề vì không có cách nào để tìm ra 8 bit nào đã thay đổi hoặc thậm chí nếu bit chẵn lẻ đã thay đổi.

Các bit chẵn lẻ thực tế không được sử dụng ở dạng nguyên thủy đó. Dữ liệu được lưu trữ vĩnh viễn thường được bảo vệ theo những cách phức tạp hơn, ví dụ bằng cách thêm tổng kiểm tra 32 bit hoặc dài hơn vào một khối 1024 byte - chiếm ít không gian hơn (ví dụ 0,4% thay vì 12,5%) và nhiều hơn ít có khả năng không phát hiện ra khi có điều gì đó không ổn.


Thực sự lỗi thời: "đoạn" 16 byte không phải là một đơn vị bộ nhớ có ý nghĩa kể từ khi chuyển từ chế độ thực và địa chỉ được phân đoạn.
Đánh dấu

Cá nhân, tôi sẽ giả sử "WinAPI" khi ai đó nói về 2 byte WORD, điều này ... chứng tỏ quan điểm của bạn, vì rất nhiều tên loại WinAPI đã lỗi thời nhưng được giữ để tương thích ngược. xP
Thời gian Justin

1

Mặc dù các câu trả lời thực sự xuất sắc được đưa ra ở đây, tôi ngạc nhiên rằng không ai chỉ ra rằng các bit chẵn lẻ hoặc bit sửa lỗi là theo định nghĩa 'siêu dữ liệu' và do đó không phải là một phần của byte.

Một byte có 8 bit !


0

Trong sử dụng hiện đại, một byte là 8 bit, theo chu kỳ (mặc dù trong lịch sử nó có các định nghĩa khác). Mặt khác, một từ dữ liệu là bất cứ phần cứng nào trong câu hỏi xử lý như một đơn vị nguyên tử - có thể là 8 bit, 9 bit, 10 bit, 12 bit, 16 bit, 20 bit, 24 bit, 32 bit, v.v. hệ thống trong những năm qua đã có tất cả các loại kích cỡ từ khác nhau.

Để thực hiện một hệ thống bộ nhớ hoặc giao thức truyền, có ích khi thêm phát hiện / sửa lỗi liên quan đến các bit bổ sung. Họ không tạo ra một byte 9 bit bởi vì, như đã nêu ở trên, một byte là 8 bit.

Đề án khác nhau thêm phát hiện lỗi và / hoặc sửa chữa theo nhiều cách khác nhau.

Việc sử dụng chẵn lẻ điển hình là thêm một bit bổ sung vào từ truyền để người nhận có thể phát hiện một lỗi đơn lẻ.

Một sơ đồ có thể cung cấp sửa lỗi một bit liên quan đến việc thêm 4 bit ECC cho mỗi từ dữ liệu 32 bit. Điều này chỉ xảy ra tương đương với 1 bit trên mỗi byte, nhưng nó không thể / không hoạt động theo cách đó. Một từ dữ liệu 36 bit có thể mang đủ thông tin để phục hồi từ một lỗi một bit cho không gian dữ liệu 32 bit.


0

8 bit. Bên trong cpu và bàn phím, nó là 9 và 11 bit. Dữ liệu người dùng được thể hiện trong 8 bit mặc dù. Các phím trên bàn phím gửi các bài hát được chia thành 11 bit. 1 bit bắt đầu, 1 bit kết thúc, 1 bit chẵn lẻ và 8 bit đại diện cho một phím được nhấn.


2
Điều này có trả lời câu hỏi không? Bạn có nghĩa là độ dài khác nhau cho byte trong cpu và byte trong bàn phím? "Hát" nên là "chuỗi" hay "luồng"?
Apass.Jack

Âm thanh như bạn đang nói về một giao thức dây bao gồm dữ liệu đóng khung, chứ không phải dữ liệu thực tế.
Peter Cordes

Tôi sẽ cho rằng "hát" là "tín hiệu", bản thân tôi, @ Apass.Jack.
Thời gian Justin
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.