Czy istnieje alternatywa dla bitów?


42

Czy istnieje alternatywa dla bitów jako najmniejszej jednostki danych? Coś, co nie będzie tylko 0 lub 1, ale faktycznie zawiera wiele możliwych stanów pomiędzy? Czy nie byłoby bardziej naturalne przechowywanie takich pływaków?


8
Potrzebujesz nieskończonej liczby stanów, aby móc przechowywać dowolne zmiennoprzecinkowe, więc nie byłoby to możliwe.
ChrisF

2
@ChrisF: Czy możesz reprezentować nieskończoność liczb zmiennoprzecinkowych przy ograniczonej liczbie bitów?
użytkownik nieznany

11
@ userunknown - nie, nie możesz. Dlatego arytmetyka zmiennoprzecinkowa jest podatna na błędy. Co ja próbuje powiedzieć, było to, że mają więcej stanów nie byłoby rzeczywiście rozwiąże niczego.
ChrisF


5
Niemożliwe jest jednoznaczne przedstawienie nieskończonej liczby różnych pływaków. Będziesz musiał przechowywać nieskończoną ilość informacji, aby jednoznacznie zidentyfikować pojedynczą nieskończoność, czego nie można zrobić na ograniczonej przestrzeni, ponieważ fizyka . Przechowywanie informacji przekraczające pewną ilość w danej objętości wymaga takiej gęstości , aby zawartość została zgnieciona grawitacyjnie do MAX_DENSITY w skończonym czasie, nawet jeśli mogłyby one podróżować z MAX_SPEED (lepiej znaną jako „prędkość światła”): czarny dziura . Zobacz en.wikipedia.org/wiki/Bekenstein_bound, aby zapoznać się z implikacjami CompSci.

Odpowiedzi:


59

Oczywiście jest to możliwe, zarówno teoretycznie, jak i praktycznie.

Teoretycznie istnieją dwie klasy alternatyw: cyfrowe systemy liczbowe z bazą inną niż 2 (w rzeczywistości system dziesiętny, jaki znamy, jest jednym z takich systemów); i niecyfrowe systemy liczbowe. Z matematycznego punktu widzenia mówimy o domenach dyskretnych i ciągłych.

W praktyce zbadano obie opcje. Niektóre wczesne komputery cyfrowe (np. ENIAC) stosowały kodowanie dziesiętne zamiast obecnie wszechobecnego kodowania binarnego; inne zasady, np. trójskładnikowe, powinny być tak samo wykonalne (lub niewykonalne). Ezoteryczny język programowania Malbolge oparty jest na teoretycznym komputerze trójskładnikowym; choć w większości satyryczny, nie ma technicznych powodów, dla których miałby nie działać. Przechowywanie i przetwarzanie w domenie ciągłej odbywało się historycznie na komputerach analogowych, w których można było kodować wielkości jako częstotliwości i / lub amplitudy sygnałów oscylujących, a następnie wykonywać obliczenia, stosując wszelkiego rodzaju modulacje do tych sygnałów. Dzisiaj obliczenia kwantowe sprawiają, że teoria ciągłych komórek pamięci jest znów interesująca.

Tak czy inaczej, bit jako teoretycznie najmniejsza jednostka informacji nadal obowiązuje, ponieważ każda alternatywa może zakodować więcej informacji niż pojedyncze tak / nie, a nikt jeszcze nie wymyślił mniejszej jednostki teoretycznej (i nie oczekuję, że tak się stanie w najbliższym czasie).


17
@Dokkat: Pamięć ciągła, taka jak taśma analogowa, jest świetna w teorii, ale w praktyce cierpi z powodu nieodwracalnego hałasu i degradacji, co jest jednym z powodów, dla których używamy komputerów cyfrowych.
tdammers

19
W teorii informacji jest całkiem możliwe przekazanie mniej niż 1 bit informacji. Podstawową ideą jest to, że jeden bit danych zawiera tylko jeden bit informacji, jeśli oba stany są jednakowo prawdopodobne. Zgodnie z tą definicją na pustyni Sahara odpowiedź „nie” na pytanie „czy dzisiaj padał deszcz?” przenosi mniej niż 1 bit informacji, ponieważ prawie zawsze jest to odpowiedź.
Michael Borgwardt,

9
@Dokkat był powszechny w modelowaniu złożonych wielkości analogowych, komputer „cyfrowy” był systemem sterowania dla komputera analogowego. W praktyce trudno zbudować obwód analogowy o rozdzielczości adouble
Martin Beckett

5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding- W rzeczywistości kodowania dziesiętne są nadal w użyciu; nazywa się BCD . BIOS w większości komputerów korzysta z niego (dla dat dziesiętnych) , a także w większości tanich kalkulatorów, ponieważ wymaga mniej obwodów (tj. Jest tańszy) do zrobienia wszystkiego w BCD niż do binarnego i posiada konwerter binarny na dziesiętny.
BlueRaja - Danny Pflughoeft

3
Jak mówi @tdammers, trudno jest dopasować nawet pływaki o pojedynczej precyzji za pomocą sygnałów analogowych. 32-bitowe zmiennoprzecinkowe skutecznie mają 24 bity precyzji; obwody analogowe o porównywalnym szumie są drogie, energochłonne, wolne i bardzo wrażliwe na otoczenie.
Zbliża się burza

26

Zasadniczo opisujesz sygnał analogowy, który jest używany w czujnikach, ale rzadko do obliczeń wewnętrznych. Problem polega na tym, że hałas obniża jakość, potrzebujesz bardzo precyzyjnej kalibracji punktu odniesienia, który jest trudny do komunikacji, a transmisja stanowi problem, ponieważ traci siłę w miarę podróży.

Jeśli interesujesz się badaniem obliczeń analogowych, większość licencjackich „intro do elektroniki” buduje takie rzeczy, jak integratory wzmacniaczy operacyjnych . Są łatwe do zbudowania nawet bez formalnej instrukcji.

Możesz także przechowywać wiele stanów cyfrowych w tym samym węźle. Na przykład zamiast 0-2,5 wolta będącego zerem i 2,5-5,0 woltów będącego jednym, możesz dodać trzeci stan pomiędzy nimi. Dodaje to jednak dużo komplikacji i znacznie zwiększa podatność na hałas.


Obliczenia analogowe były kiedyś dość powszechne, ale ostatecznie cyfrowe mogą być bardziej precyzyjne. Wykorzystanie kilku dodatkowych bitów w pamięci do przedstawienia wartości jest wręcz trywialne w porównaniu z próbą wytłumienia hałasu o kilka dB niżej (3 bity ~ 20 dB), a w pewnym momencie (zależy od prędkości) fizycznie niemożliwe.
Nick T

Podoba mi się nacisk na przetwarzanie analogowe i przykłady. Pochodząc ze ściśle cyfrowej wiedzy naukowej nie zawsze widziałem, czym jest przetwarzanie analogowe. Chociaż googlowanie do tego da wiele przykładów. Wydaje mi się, że pamiętam, że pryzmat „oblicza” transformatę Fouriera, ponieważ dzieli przychodzące światło na jego częstotliwości składowe. Robi to dość szybko, przy zerowej energii (w sensie wymagań do obliczenia FT). Oczywiście zrobienie czegoś z wynikiem prawdopodobnie wymagałoby digitalizacji.
Paul

@NickT Norbert Wiener, autor cybernetyki i wczesny gracz w dziedzinie teorii / kontroli przypomniał w swojej książce, że ostatecznie to niższy koszt obwodów binarnych w porównaniu z analogicznym odpowiednikiem spowodował, że laboratoria, badacze i przemysł zdecydowali się na binarny
Christophe

20

Są to tak zwane kubity i są używane w komputerach kwantowych. Więcej informacji na ich temat znajdziesz we wpisie na Wikipedii . Prowadzone są badania, aby takie komputery były stabilne i ekonomicznie wykonalne.


1
to boli mnie głowa, gdy czytam ...
Ryathal

Nie jestem pewien, jak dokładnie działa kubit (czytam go, więc zaktualizuję później), ale wiem, że kubity są niepraktyczne z obecną technologią, podczas gdy ta koncepcja nie jest. Na przykład można fizycznie przedstawić „pływający” bit przez ilość wody wypełniającej szklankę i zmierzyć go za pomocą wagi.
Dokkat

11
Nitpicking: Kubit nie przechowuje stanów pomiędzy 0 a 1. Jest nadal 0 lub 1, ale może mieć wiele stanów jednocześnie . (Podobnie jak kot Schrodingera, który nie jest „na wpół martwy”, ale jednocześnie martwy i żywy)
nikie

7
@Ryathal To właściwie dobry znak: „Każdy, kto nie jest zszokowany teorią kwantową, nie zrozumiał”. - Niels Bohr
Dan Neely

1
Z jakiegoś powodu kubity zawsze wyobrażam sobie jako jasnoniebieskie lub różowe Tribbles.
Wayne Werner

17

Kwestia dokładności

Jednym z powodów, dla których używamy bitów, jest to, że pomaga nam dokładnie przechowywać i pobierać informacje.

Świat rzeczywisty jest analogowy, dlatego wszystkie informacje przekazywane lub przechowywane przez komputery są ostatecznie analogowe . Na przykład prąd o określonym napięciu na drucie lub ładunek magnetyczny o określonej sile na dysku lub wgłębienie o określonej głębokości na dysku laserowym.

Pytanie brzmi: jak dokładnie można zmierzyć tę informację analogową ? Wyobraź sobie, że prąd na przewodzie można interpretować jako dowolną liczbę dziesiętną w następujący sposób:

  • 1 do 10 woltów: 0
  • 10 do 20 woltów: 1
  • 20 do 30 woltów: 2

Itd. Ten system pozwoliłby nam przekazać wiele danych w kilku impulsach prądu, prawda? Ale jest problem: musimy być bardzo pewni, jakie jest napięcie. Jeśli temperatura, magnesy, promienie kosmiczne lub cokolwiek innego spowodują wahania, możemy odczytać niewłaściwy numer. Im dokładniej zamierzamy zmierzyć, tym większe jest to ryzyko. Wyobraź sobie, że różnica 1 miliwolta była znacząca!

Zamiast tego zwykle używamy interpretacji cyfrowej . Wszystko powyżej pewnego progu jest prawdą, a wszystko poniżej jest fałszywe. Możemy więc zadawać pytania typu „Czy w ogóle jest prąd?” zamiast „ Dokładnie ile jest prądu?”

Każdy pojedynczy bit może być mierzony z pewnością, ponieważ musimy tylko „znaleźć się na właściwym boisku”. Używając wielu bitów, nadal możemy uzyskać wiele informacji.


1
Aby być uczciwym, obwody cyfrowe muszą definiować mierzalne wartości, które są zdecydowanie prawdziwe lub fałszywe, a pomiędzy stanami, które są „niezdefiniowane”. W logice 3.3 / 5V może to być <0,8 V to fałsz,> 2,5 V to prawda. Hałas z pewnością nadal stanowi problem, jeśli usuwa sygnał z tych zakresów. Na przykład próba obniżenia poziomu sygnału do poziomu niskiego za pomocą tranzystora NPN doprowadzi Cię do obniżenia tylko do 0,55 do 0,7 V. Nie za dużo do zabawy. Po prostu utrudniasz definiowanie bardziej zdefiniowanych zakresów.
Scott Whitlock,

2
@ScottWhitlock to tylko specyfikacje; chyba że pin jest zaprojektowany tak, aby akceptować HiZ lub tym podobne, będzie interpretował dane wejściowe jako 1 lub 0, a ten punkt może się różnić w zależności od temperatury, partii produkcyjnej, napięcia zasilania itp. Ten niezdefiniowany region nie jest cechą ( sugerujesz, że możesz wykorzystać to do logiki rozmytej).
Nick T

1
@NickT: niezdefiniowany region oznacza duże zniekształcenie (tak duże, że normalna korekcja błędów może go nie odzyskać) i konieczna jest możliwa retransmisja.
Lie Ryan

2
@LieRyan, rozważasz znacznie wyższy poziom niż to, z czym radzą sobie takie specyfikacje (warstwa fizyczna). Niezdefiniowany region oznacza po prostu, że zachowanie (sposób odczytu bitu) jest niezdefiniowane i nie jest gwarantowane. Nadal może działać dobrze.
Nick T


3

Może to być dla nas bardziej naturalne, ale istnieją konkretne powody, dla których binarny został wybrany do obwodów cyfrowych, a tym samym do języków programowania. Jeśli masz dwa stany, musisz tylko rozróżnić dwa ustawienia napięcia, powiedzmy 0V i 5V. Za każdy dodatkowy wzrost do podstawy (podstawy) trzeba będzie dalej dzielić ten zakres, uzyskując w ten sposób wartości, które są od siebie niezrozumiałe. Możesz zwiększyć zakres napięcia, ale ma to paskudny zwyczaj topienia obwodów.

Jeśli chcesz zmienić typ sprzętu z układów cyfrowych, opcje są bardziej zróżnicowane. Dziesiętne były używane w komputerach mechanicznych, ponieważ koła zębate mają znacznie większą tolerancję na ciepło i są znacznie wyraźniejsze niż ładunki elektronowe. Komputery kwantowe, jak podano w innym miejscu, mają inne sposoby radzenia sobie z rzeczami. Komputery optyczne mogą również być w stanie robić rzeczy, z którymi nie mieliśmy do czynienia wcześniej, a także komputery magnetyczne .


2

Myślę, że można dziś budować przedmioty, które mogą pomieścić dowolną liczbę stanów, a nawet pracować z danymi analogowymi. Jednak zbudowanie całego systemu i uruchomienie wszystkich logicznych komponentów w celu uzyskania w pełni funkcjonalnej i programowalnej architektury byłoby dużym nakładem pracy i ryzykiem finansowym dla każdej firmy, aby podjąć się tego zadania.

Myślę, że ENIAC był ostatnią architekturą, która używa dziesięciopozycyjnych liczników pierścieniowych do przechowywania cyfr. Chociaż mogę się mylić i nie jestem pewien, jak bardzo wpłynęło to na inne części maszyny.


2

Pamięć masową można traktować jako transmisję w przyszłość, wszystkie problemy transmisji z mediami ciągłymi (analogowymi) będą miały zastosowanie.

Przechowywanie tych stanów może być trywialne (przełącznik trójdrożny lub jakiś rodzaj siatki), a fizyczne przechowywanie tych stanów jest jednym z zagadnień, które obejmuje wiele odpowiedzi, znacznie lepiej niż ja.

Moim głównym zmartwieniem jest to, w jaki sposób kodowany jest ten stan przechowywany i wydaje się, że istnieje duże prawdopodobieństwo, że to zadanie jest głupie, ponieważ bity są wystarczające do przedstawienia praktycznych ciągłych danych, w zależności od potrzebnej dokładności, dodawaj kolejne bity.

Naprawdę ciągłe dane nie mogą być przechowywane w ten sposób, ale równania do ich obliczenia np

1/3

może być przechowywane.


2

Trop i Inkling są mniejsze kawałki informacji niż trochę. Zazwyczaj potrzeba kilku wskazówek, aby ustalić określoną wartość bitu. Inklings są gorsze: bez względu na to, ile ich zsumujesz, nadal nie możesz na pewno poznać wartości wynikowego bitu.

Mówiąc poważniej, istnieją logiki wielowartościowe, w których jednostka podstawowa może mieć jeden z n stanów, gdzie n> 2. Można uznać, że jednostki te niosą mniej informacji niż nieco w rozumieniu poprzedniego akapitu, ale z teorii informacji z punktu widzenia trzeba powiedzieć, że mają więcej. Na przykład potrzebne byłyby dwa bity reprezentujące taką samą ilość informacji, jaką może przenosić pojedyncza wartość w logice czterowartościowej.


1

Optymalna baza numeryczna to e , ale ponieważ najprostszym sposobem przedstawienia liczby w cyfrowej elektronice są dwa stany (wysokie napięcie = 1, niskie napięcie = 0), wybrano reprezentację liczb binarnych.


Mówisz o tym ebez wspominania nat ? Wstyd.
Ben Voigt,

1
@BenVoigt, co? Co to jest nat ? :) google powiedział mi kilka dziwnych rzeczy, które nie pasują do tematu.
BЈовић

@BenVoigt Może miałeś na myśli Nat (informacje) ? Nat ... jest logarytmiczną jednostką informacji lub entropii, opartą na naturalnych logarytmach i potęgach e, a nie potęgach logarytmów 2 i podstawy 2, które definiują bit.
CVn

@ MichaelKjörling: Dokładnie tak.
Ben Voigt

0

Istnieje mniejsza możliwa jednostka danych. Nie znam jej oficjalnej nazwy, nazwijmy to un.

Bit to inteligentne słowo kombi dla „Binary digIT”, co oznacza, że ​​ma dwa możliwe stany. Musi więc istnieć rodzaj cyfry z tylko jednym możliwym stanem.

Zobaczmy, co to znaczy. Oznacza to, że będziesz mieć tylko zera do pracy.

Jak byś policzył? W dowolnym systemie x-base zwiększasz wartość, aż zabraknie cyfr, a następnie dodajesz cyfrę, aby utworzyć liczbę. Jeśli masz tylko jedną cyfrę, natychmiast zabraknie cyfr, więc:

Zero = 0 Jeden = 00 Dwa = 000 i tak dalej

Jest to zdecydowanie bardziej naturalne: więcej oznacza więcej! Idealnie odwzorowuje na dowolną liczbę rzeczy. Ile ziemniaków? 00000 To cztery ziemniaki. Poczekaj chwilkę ... to nie działa. Jeśli ci się nie podoba, możesz przedefiniować wartość od 0 do jednego. To jest naprawdę naturalne: brak zer to zero, jedno zero to jeden, dwa zera to dwa itd.

Jest to jednak niepraktyczne dla maszyny półprzewodnikowej. Cyfry musiałyby być fizycznie umieszczone i usunięte i nie skalują się dobrze.


1
Jednak tak naprawdę nie kwalifikuje się to jako jednostka danych, ponieważ w zasadzie po prostu zakodowałeś 0 jako „nieobecny” i 1 jako 0. To wciąż są bity.
DeadMG,

To nie jest binarne, to jest jednoargumentowe. Chodzi o to, że element danych ma tylko jeden stan, a nie dwa. Obecność lub nieobecność nie jest stanem, stan elementu jest zawsze taki sam, dlatego jest cyfrą jednoargumentową. Zasadniczo opisuję system znaczników.
Martin Maat,

-1

Nie mogę za znaleźć ostateczne odniesienie angielskiego, ale o ile pamiętam z Information Theory klasy bit jest podstawową jednostką informacji. Trochę informacji to informacje, które otrzymujesz po rzucie uczciwą monetą (50% prawdopodobieństwa dla każdej strony). Wszystko inne można do tego sprowadzić.

Nawet jeśli używasz urządzenia, które ma wiele stanów, zawsze można je sprowadzić do bitów.


-1

Jeśli definiujesz naturalność, będąc blisko tego, jak działa matka natura, najbardziej naturalnym sposobem kodowania informacji są podobne do DNA kombinacje adeniny, cytozyny, guaniny i tyminy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.