Tôi thấy đây là một điều thú vị tuyệt vời để suy nghĩ. Nhị phân không phải là 1 và 0 theo cách bạn nói về nó.
Hãy tưởng tượng có một số lượng, tôi có thể cho bạn biết số lượng đó theo nhiều cách khác nhau:
Nine
bằng tiếng Anh
Neuf
ở Pháp
9
bằng chữ số Ả Rập
IX
bằng chữ số La Mã
1001
trong nhị phân với chữ số Ả Rập
on off off on
trong nhị phân có bật / tắt
high low low high
trong Binary được biểu thị bằng điện áp hoặc đòn bẩy hoặc mực nước hoặc điện tích ... hoặc các từ tiếng Anh 'cao' và 'thấp'
Tất cả đều đại diện cho cùng một điều. Vấn đề ở đây là nhị phân không phải là 1 và 0, đó chỉ là một cách để biểu thị một giá trị.
Khi bạn nói về việc chuyển đổi H thành nhị phân, bạn có thể tưởng tượng nhìn thấy 10101010 trên màn hình - nhưng đó không phải là "nhị phân", đó là một chữ số cho mỗi bit nhị phân.
Có, nếu bạn chuyển đổi H
thành "nhị phân" như mọi người thường nói về nó, và sau đó biểu thị rằng bằng chữ số Ả Rập và sau đó lưu trữ nó, sẽ mất nhiều không gian hơn giống như cách chuyển đổi H
để aitch
chiếm nhiều không gian hơn.
Nhưng bạn có thể thấy rằng nhị phân là một cách biểu thị một đại lượng, theo logic đó, nói rằng "nếu tôi chuyển đổi H thành nhị phân và đại diện cho nó high low high low high low high low
thì sẽ mất 35 ký tự! Điều đó thậm chí còn hơn thế 10101010
! Nhưng cả hai đều là 'nhị phân' .. vậy làm thế nào là một cái lớn hơn cái kia?
Ở phía bên kia của việc này là để tự hỏi như thế nào H
được lưu trữ bởi một máy tính, và để thấy rằng H
bản thân nó chỉ là một cách để đại diện cho một số lượng - cùng số lượng 72
, 01001000
hoặc seventy two
hoặc mã ký tự ASCII H
. Đó là câu trả lời của 8bittree rằng văn bản thuần túy là nhị phân, nhưng đây là tôi đang cố gắng thể hiện điều đó có nghĩa là gì .
Vì vậy, bạn có được một chút mẫu trong máy tính 01001000
và nó có nghĩa là gì? Bất cứ điều gì - có thể được nói về như một con số, như là một phần của tệp zip, như một ký tự, phụ thuộc vào ý định của người tạo ra nó là gì. Nếu bạn biết nó được coi là văn bản thuần túy, thì nó xuất phát từ mã hóa ký tự H
-> 01001000
và bạn tìm nó theo cách khác trong bảng mã hóa ký tự - ASCII, UTF-8, shift-jis, v.v. và tìm đúng phông chữ nhân vật và đi ra mộtH
hoặc bất cứ điều gì. Hoặc xuất hiện sai ký tự nếu bạn sử dụng tra cứu mã hóa khác với người đã tạo nó sử dụng. Đây là liên kết của @Eric Lippert.
Nhưng khi tôi viết điều này, và như bạn nghĩ về nó, H
là một byte và 01001000
là 8 byte, vâng, đó là nhiều không gian hơn. Và vâng, đó là (một đại diện) nhị phân. Nhưng nó ở mức độ trừu tượng cao hơn so với máy tính đang sử dụng - nhị phân được hiển thị bằng các ký tự ASCII, trong đó mỗi ký tự được biểu thị phía sau hậu trường với một mẫu bit nhị phân, mỗi ký tự lớn như H
một mình.