Có một sự thay thế cho bit?


42

Có một sự thay thế cho bit là đơn vị dữ liệu nhỏ nhất không? Một cái gì đó sẽ không chỉ là 0 hoặc 1, nhưng thực sự có nhiều trạng thái có thể ở giữa? Sẽ không tự nhiên hơn khi lưu trữ phao như vậy?


8
Bạn sẽ cần vô số trạng thái để có thể lưu trữ các phao tùy ý, vì vậy điều này sẽ không thể thực hiện được.
ChrisF

2
@ChrisF: Bạn có thể đại diện cho vô số số float với số lượng bit giới hạn không?
người dùng không xác định

11
@userunknown - không bạn không thể. Đó là lý do tại sao số học dấu phẩy động dễ bị lỗi. Những gì tôi đã cố gắng nói là có nhiều trạng thái sẽ không thực sự giải quyết bất cứ điều gì.
ChrisF

6
Điều này có thể được quan tâm: thed Dailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
Chris Cudmore

5
Không thể đại diện duy nhất cho vô số số lượng phao khác nhau. Bạn sẽ cần lưu trữ một lượng thông tin vô hạn để xác định duy nhất một thông tin duy nhất, điều này không thể thực hiện được trong một không gian hữu hạn vì vật lý . Lưu trữ thông tin vượt quá một lượng nhất định trong một khối lượng nhất định đòi hỏi mật độ sao cho nội dung sẽ bị nghiền nát đến MAX_DENSITY trong thời gian hữu hạn, ngay cả khi chúng có thể di chuyển ở MAXinksEED (được gọi là 'tốc độ ánh sáng'): màu đen lỗ . Xem en.wikipedia.org/wiki/Bekenstein_bound để biết hàm ý CompSci.

Câu trả lời:


59

Tất nhiên là có thể, cả về lý thuyết và thực tế.

Về mặt lý thuyết, có hai loại thay thế: hệ thống số kỹ thuật số có cơ sở khác 2 (trên thực tế, hệ thập phân như chúng ta biết là một hệ thống như vậy); và hệ thống số phi kỹ thuật số. Về mặt toán học, chúng ta đang nói về các miền rời rạc và liên tục.

Trong thực tế, cả hai lựa chọn đã được khám phá. Một số máy tính kỹ thuật số ban đầu (ví dụ ENIAC) sử dụng mã hóa thập phân thay vì mã hóa nhị phân phổ biến hiện nay; các căn cứ khác, ví dụ như ternary, nên khả thi (hoặc không khả thi). Ngôn ngữ lập trình bí truyền Malbolge dựa trên một máy tính ternary lý thuyết; trong khi chủ yếu là châm biếm, không có lý do kỹ thuật tại sao nó không hoạt động. Lưu trữ và xử lý miền liên tục được thực hiện trong lịch sử trên các máy tính tương tự, nơi bạn có thể mã hóa các đại lượng dưới dạng tần số và / hoặc biên độ của tín hiệu dao động, và sau đó bạn sẽ thực hiện tính toán bằng cách áp dụng tất cả các loại điều chế cho các tín hiệu này. Ngày nay, điện toán lượng tử làm cho lý thuyết đằng sau các tế bào lưu trữ liên tục trở nên thú vị trở lại.

Dù bằng cách nào, bit như một đơn vị thông tin nhỏ nhất về mặt lý thuyết vẫn tồn tại, vì bất kỳ sự thay thế nào cũng có thể mã hóa nhiều thông tin hơn một có / không, và chưa ai đưa ra một đơn vị lý thuyết nhỏ hơn (và tôi không hy vọng nó sẽ xảy ra bất cứ lúc nào sớm).


17
@Dokkat: Lưu trữ miền liên tục, chẳng hạn như băng analog, về mặt lý thuyết là tuyệt vời, nhưng trên thực tế, nó bị tiếng ồn và suy thoái không thể phục hồi, đó là một trong những lý do tại sao chúng ta sử dụng máy tính kỹ thuật số ở nơi đầu tiên.
tdammers

19
Trong lý thuyết thông tin, hoàn toàn có thể truyền tải ít hơn 1 bit thông tin. Ý tưởng cơ bản là một bit dữ liệu chỉ chứa một bit thông tin nếu cả hai trạng thái đều có khả năng như nhau. Theo định nghĩa đó, trên sa mạc Sahara câu trả lời "không" cho câu hỏi "hôm nay trời có mưa không?" mang ít hơn 1 bit thông tin vì đó hầu như luôn là câu trả lời.
Michael Borgwardt

9
@Dokkat thường được sử dụng để mô hình hóa các đại lượng tương tự phức tạp, máy tính 'kỹ thuật số' là một hệ thống điều khiển cho máy tính tương tự. Trong thực tế, thật khó để xây dựng một mạch tương tự với độ phân giải củadouble
Martin Beckett

5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding- Trên thực tế, mã hóa thập phân vẫn được sử dụng cho đến ngày nay; nó được gọi là BCD . BIOS trong hầu hết các máy tính sử dụng nó (cho các ngày dựa trên thập phân) , cũng như hầu hết các máy tính giá rẻ, bởi vì nó đòi hỏi ít mạch hơn (tức là rẻ hơn) để làm mọi thứ trong BCD so với thực hiện nhị phân và có một chuyển đổi nhị phân sang thập phân.
BlueRaja - Daniel Pflughoeft

3
Như @tdammers nói, thật khó để so sánh ngay cả các phao có độ chính xác đơn sử dụng tín hiệu tương tự. Phao 32 bit có hiệu quả chính xác 24 bit; các mạch tương tự có tiếng ồn tương đương là đắt tiền, ngốn điện, chậm và rất nhạy cảm với môi trường của chúng.
comingstorm

26

Về cơ bản, bạn đang mô tả một tín hiệu tương tự, được sử dụng trong các cảm biến, nhưng hiếm khi cho các tính toán bên trong. Vấn đề là tiếng ồn làm giảm chất lượng, bạn cần hiệu chuẩn rất chính xác điểm tham chiếu khó giao tiếp và truyền dẫn là một vấn đề vì nó mất sức mạnh khi di chuyển xa hơn.

Nếu bạn thích khám phá điện toán tương tự, hầu hết các lớp "giới thiệu về điện tử", bạn sẽ xây dựng những thứ như các nhà tích hợp op-amp . Chúng đủ dễ dàng để xây dựng ngay cả khi không có hướng dẫn chính thức.

Bạn cũng có thể lưu trữ nhiều trạng thái kỹ thuật số trên cùng một nút. Ví dụ, thay vì 0-2,5 volt là 0 và 2,5-5,0 volt là một, bạn có thể thêm trạng thái thứ ba ở giữa. Tuy nhiên, nó làm tăng thêm sự phức tạp và làm tăng đáng kể tính nhạy cảm của bạn với tiếng ồn.


Một máy tính tương tự từng khá phổ biến, nhưng cuối cùng kỹ thuật số có thể chính xác hơn. Sử dụng thêm một vài bit trong bộ nhớ để biểu thị một giá trị là hết sức tầm thường so với việc cố gắng giảm tiếng ồn xuống thấp hơn vài dB (3 bit ~ 20 dB) và tại một số điểm (thay đổi dựa trên tốc độ) về mặt vật lý là không thể.
Nick T

Tôi thích sự nhấn mạnh ở đây về điện toán tương tự và các ví dụ. Đến từ một nền tảng khoa học kỹ thuật số nghiêm ngặt, tôi không phải lúc nào cũng thấy điện toán tương tự là gì. Mặc dù googling cho điều đó sẽ đưa ra nhiều ví dụ. Tôi nghĩ rằng tôi nhớ lại rằng một lăng kính "tính toán" biến đổi vây, bởi vì nó phân tách ánh sáng tới thành các tần số cấu thành của nó. Nó thực hiện điều này khá nhanh, với 0 năng lượng (theo nghĩa yêu cầu để tính FT). Tất nhiên để làm một cái gì đó với kết quả có thể sẽ yêu cầu số hóa.
Paul

@NickT Norbert Wiener, tác giả của điều khiển học và máy nghe nhạc đầu nó / lý thuyết điều khiển hiện trường kể lại trong cuốn sách của ông mà cuối cùng nó là chi phí thấp hơn của các mạch nhị phân so với analog tương đương mà gây ra các phòng thí nghiệm, các nhà nghiên cứu và công nghiệp lựa chọn không cho nhị phân
Christophe

20

Chúng được gọi là qubit, và được sử dụng trong máy tính lượng tử. Bạn sẽ tìm thấy thêm thông tin về họ trên mục wikipedia . Nghiên cứu đang được thực hiện để làm cho các máy tính như vậy ổn định và khả thi về kinh tế.


1
điều này làm cho đầu tôi đau khi đọc rằng ...
Ryathal

Tôi không chắc chính xác cách thức hoạt động của một qubit (Tôi đang đọc nó vì vậy tôi sẽ cập nhật sau), nhưng tôi biết các qubit là không thực tế với công nghệ hiện tại, trong khi khái niệm đó thì không. Chẳng hạn, người ta có thể đại diện một cách vật lý cho bit 'nổi' bằng lượng nước rót vào ly và đo nó bằng cân.
Dokkat

11
Nitpicking: Một qubit không giữ trạng thái trong khoảng từ 0 đến 1. Nó vẫn là 0 hoặc 1, nhưng nó có thể có nhiều trạng thái cùng một lúc . (Giống như con mèo của Schrodinger không "chết một nửa", nhưng chết và sống đồng thời)
nikie

7
@Ryathal Đó thực sự là một dấu hiệu tốt: "Bất cứ ai không bị sốc bởi lý thuyết lượng tử đều không hiểu nó." - Niels Bohr
Dan Neely

1
Vì một số lý do, tôi luôn hình dung các qubit là màu xanh nhạt hoặc màu hồng nhạt.
Wayne Werner

17

Một vấn đề chính xác

Một lý do chúng tôi sử dụng bit là nó giúp chúng tôi lưu trữ và truy xuất thông tin chính xác.

Thế giới thực là tương tự, do đó tất cả các máy tính thông tin vượt qua hoặc lưu trữ cuối cùng là tương tự . Ví dụ, dòng điện của một điện áp cụ thể trên dây hoặc điện tích từ có cường độ riêng trên đĩa hoặc hố có độ sâu cụ thể trên đĩa laser.

Câu hỏi là: làm thế nào chính xác bạn có thể đo thông tin tương tự ? Hãy tưởng tượng rằng một dòng điện trên dây có thể được hiểu là bất kỳ số thập phân nào, như sau:

  • 1 đến 10 vôn: 0
  • 10 đến 20 vôn: 1
  • 20 đến 30 vôn: 2

V.v. Hệ thống này sẽ cho phép chúng ta truyền rất nhiều dữ liệu trong một vài xung của dòng điện, phải không? Nhưng có một vấn đề: chúng ta phải rất chắc chắn điện áp là gì. Nếu nhiệt độ hoặc nam châm hoặc tia vũ trụ hoặc bất cứ điều gì gây ra một số biến động, chúng ta có thể đọc nhầm số. Và chúng tôi càng có ý định đo lường càng tốt thì rủi ro đó càng lớn. Hãy tưởng tượng nếu sự khác biệt 1 millivolt là đáng kể!

Thay vào đó, chúng tôi thường sử dụng một giải thích kỹ thuật số . Tất cả mọi thứ trên một số ngưỡng là đúng, và tất cả mọi thứ dưới là sai. Vì vậy, chúng ta có thể đặt câu hỏi như "Có bất kỳ hiện tại nào không?" thay vì " Chính xác có bao nhiêu hiện tại?"

Mỗi bit riêng lẻ có thể được đo bằng sự tự tin, bởi vì chúng ta chỉ phải "ở đúng sân bóng". Và bằng cách sử dụng nhiều bit, chúng ta vẫn có thể nhận được nhiều thông tin.


1
Để công bằng, các mạch kỹ thuật số phải xác định các giá trị có thể đo được là đúng hoặc sai và ở giữa các trạng thái "không xác định". Trong logic 3,3 / 5V có thể <0,8V là sai,> 2,5V là đúng. Nhiễu chắc chắn vẫn là một vấn đề nếu nó đưa tín hiệu ra khỏi các phạm vi đó. Chẳng hạn, cố gắng kéo tín hiệu xuống mức thấp bằng cách sử dụng bóng bán dẫn NPN sẽ chỉ khiến bạn giảm xuống 0,55 đến 0,7V tùy thuộc vào các yếu tố nhất định. Không có nhiều để chơi với. Bạn chỉ làm cho nó khó hơn khi bạn xác định phạm vi xác định nhiều hơn.
Scott Whitlock

2
@ScottWhitlock đó chỉ là thông số kỹ thuật; trừ khi pin được thiết kế để chấp nhận HiZ hoặc tương tự, nó sẽ hiểu đầu vào là 1 hoặc 0 và điểm đó có thể thay đổi dựa trên nhiệt độ, lô sản xuất, điện áp cung cấp, v.v. Vùng không xác định đó không phải là một tính năng ( bạn dường như đề nghị bạn có thể khai thác nó cho logic mờ).
Nick T

1
@NickT: vùng không xác định đánh dấu rằng có một biến dạng lớn (một vùng quá lớn đến mức sửa lỗi thông thường có thể không phục hồi được) và cần phải truyền lại.
Lie Ryan

2
@LieRyan, bạn đang xem xét mức độ cao hơn nhiều so với những gì thông số kỹ thuật đó xử lý (lớp vật lý). Vùng không xác định chỉ có nghĩa là hành vi (cách đọc bit) không được xác định và không được bảo đảm. Nó vẫn có thể hoạt động tốt.
Nick T


3

Nó có thể tự nhiên hơn đối với chúng tôi nhưng có những lý do cụ thể tại sao nhị phân được chọn cho mạch kỹ thuật số và do đó cho các ngôn ngữ lập trình. Nếu bạn có hai trạng thái, bạn chỉ cần phân biệt giữa hai cài đặt volt là 0V và 5V. Đối với mỗi lần tăng thêm vào cơ số (cơ sở), bạn cần chia thêm phạm vi đó để có được các giá trị không rõ ràng với nhau. Bạn có thể tăng phạm vi điện áp nhưng điều đó có thói quen khó chịu là làm tan chảy mạch điện.

Nếu bạn muốn thay đổi loại phần cứng từ mạch kỹ thuật số, các tùy chọn của bạn sẽ đa dạng hơn. Số thập phân từng được sử dụng trong máy tính cơ vì bánh răng có khả năng chịu nhiệt cao hơn nhiều và khác biệt hơn nhiều so với điện tích. Máy tính lượng tử như đã nêu ở nơi khác có cách xử lý khác. Máy tính quang học cũng có thể làm được những việc chúng ta chưa từng xử lý trước đây và máy tính từ tính cũng có khả năng.


2

Tôi nghĩ rằng ngày nay bạn có thể xây dựng các mục có thể chứa bất kỳ trạng thái nào hoặc thậm chí hoạt động với dữ liệu tương tự. Mặc dù việc xây dựng toàn bộ hệ thống và vận hành tất cả các thành phần logic để có được kiến ​​trúc đầy đủ tính năng và có thể lập trình sẽ là rất nhiều công việc và rủi ro tài chính cho bất kỳ công ty nào thực hiện nhiệm vụ này.

Tôi nghĩ ENIAC là kiến ​​trúc cuối cùng sử dụng bộ đếm vòng mười vị trí để lưu trữ các chữ số. Mặc dù tôi có thể sai về điều này và tôi không chắc, điều này ảnh hưởng đến các bộ phận khác của máy như thế nào.


2

Lưu trữ có thể được coi là truyền đến tương lai, tất cả các vấn đề truyền với phương tiện liên tục (tương tự) sẽ được áp dụng.

Lưu trữ các trạng thái đó có thể là tầm thường (chuyển đổi ba chiều hoặc một loại lưới nào đó) và lưu trữ vật lý các trạng thái này là một vấn đề mà nhiều câu trả lời bao gồm, tốt hơn nhiều so với tôi có thể.

Mối quan tâm chính của tôi là làm thế nào trạng thái được lưu trữ này được mã hóa và dường như có khả năng cao rằng nhiệm vụ này là một việc vặt, vì các bit đủ để biểu diễn dữ liệu liên tục thực tế, tùy thuộc vào độ chính xác bạn cần, tiếp tục thêm nhiều bit.

Dữ liệu thực sự liên tục là không thể lưu trữ theo cách này, nhưng phương trình để tính toán chúng, ví dụ

1/3

có thể được lưu trữ.


2

Một manh mối và một mực là những mẩu thông tin nhỏ hơn một chút. Một số manh mối thường được yêu cầu để thiết lập giá trị xác định của một bit. Inklings tệ hơn: cho dù bạn có thêm bao nhiêu, bạn vẫn không thể biết giá trị của bit kết quả.

Nghiêm trọng hơn, có những logic đa giá trị trong đó đơn vị cơ bản có thể có một trong n trạng thái, trong đó n> 2. Bạn có thể xem xét các đơn vị này mang ít thông tin hơn một chút theo nghĩa của đoạn trước, nhưng từ một lý thuyết thông tin quan điểm bạn phải nói rằng họ mang nhiều hơn. Ví dụ: bạn cần hai bit để biểu thị cùng một lượng thông tin mà một giá trị trong logic bốn giá trị có thể mang theo.


1

Cơ sở số tối ưu là e , nhưng vì cách đơn giản nhất để biểu diễn một số trong điện tử kỹ thuật số là có hai trạng thái (điện áp cao = 1, điện áp thấp = 0), nên biểu diễn số nhị phân.


Nói về emà không nhắc đến nat ? Vì xấu hổ.
Ben Voigt

1
@BenVoigt hả? Nat là gì? :) google nói với tôi một số điều kỳ lạ, không phù hợp với chủ đề này.
Bовић

@BenVoigt Có lẽ bạn đang đề cập đến Nat (thông tin) ? Một nat ... là một đơn vị thông tin hoặc entropy logarit, dựa trên logarit tự nhiên và quyền hạn của e, chứ không phải là lũy thừa của logarit 2 và cơ sở 2 xác định bit.
CVn

@ MichaelKjorling: Chính xác là như vậy.
Ben Voigt

0

Có một đơn vị dữ liệu nhỏ hơn có thể. Tôi không biết tên chính thức cho nó, hãy gọi nó là un.

Bit là một từ kết hợp thông minh cho "Binary digIT", có nghĩa là nó có hai trạng thái có thể. Vì vậy, phải có một loại chữ số chỉ có một trạng thái có thể.

Hãy xem điều đó có nghĩa là gì. Nó có nghĩa là bạn sẽ chỉ có số không để làm việc với.

Bạn sẽ tính như thế nào? Trong bất kỳ hệ thống cơ sở x nào, bạn tăng giá trị cho đến khi hết chữ số và sau đó thêm một chữ số để tạo thành một số. Nếu bạn chỉ có một chữ số, bạn sẽ hết chữ số ngay lập tức:

Không = 0 Một = 00 Hai = 000 et cetera

Điều này chắc chắn là tự nhiên hơn: nhiều hơn là nhiều hơn! Nó ánh xạ hoàn hảo đến bất kỳ số lượng riêng biệt của sự vật. Có bao nhiêu khoai tây? 00000 Đó là bốn củ khoai tây. Đợi một chút ... đó là một trong một. Nếu bạn không thích điều đó, bạn có thể xác định lại giá trị 0 thành một. Sau đó, nó là thực sự tự nhiên: không có số không là không có, một số không là một, hai số không là hai, et cetera.

Điều này là không thực tế cho một máy trạng thái rắn mặc dù. Các chữ số sẽ phải được đặt và loại bỏ vật lý và nó không có tỷ lệ tốt.


1
Tuy nhiên, điều này không thực sự đủ điều kiện là một đơn vị dữ liệu, vì về cơ bản bạn chỉ mã hóa 0 là "không có mặt" và 1 là 0. Chúng vẫn là các bit.
DeadMG

Nó không phải là nhị phân, nó là unary. Vấn đề là phần tử dữ liệu chỉ có một trạng thái, không phải hai. Sự hiện diện hay vắng mặt không phải là một trạng thái, trạng thái của phần tử luôn giống nhau do đó nó là một chữ số đơn. Tôi về cơ bản mô tả hệ thống đánh dấu kiểm đếm.
Martin Maat

-1

Tôi không thể tìm thấy một tài liệu tham khảo tiếng Anh dứt khoát, nhưng theo như tôi nhớ từ Lớp Lý thuyết Thông tin , bit là đơn vị thông tin cơ bản. Một chút thông tin là thông tin bạn nhận được sau khi tung đồng xu công bằng (xác suất 50% cho mỗi bên). Mọi thứ khác có thể được giảm xuống này.

Ngay cả khi bạn sử dụng một thiết bị có nhiều trạng thái, nó luôn có thể được giảm xuống thành bit.


-1

Nếu bạn xác định tự nhiên bằng cách gần gũi với cách mẹ hoạt động, cách mã hóa thông tin tự nhiên nhất là sự kết hợp giống như DNA của adenine, cytosine, guanine và thymine.

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.