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?
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?
Odpowiedzi:
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).
double
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.
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.
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.
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:
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.
Istnieją również komputery trójskładnikowe zamiast binarnych. http://en.wikipedia.org/wiki/Ternary_computer
Komputer trójskładnikowy (zwany także komputerem trójrzędnym ) to komputer, który w swoich obliczeniach używa logiki trójskładnikowej (trzy możliwe wartości) zamiast bardziej powszechnej logiki binarnej (dwie możliwe wartości) ...
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 .
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.
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.
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.
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.
e
bez wspominania nat ? Wstyd.
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.
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.