Jest to szczerze preferencja, jeśli z jakiegoś powodu masz polidaktyczność i masz 11 palców lub lubisz liczenie palcami u nóg, więc lubisz pracować w bazie 20, to wszystko zależy od ciebie. Ale zdaj sobie sprawę, że na temat uniwersalności, że większość z nas, którzy codziennie mają do czynienia z bitami i bajtami, zostanie naprawdę zaznaczona, jeśli otrzymamy coś, co robi bitową manipulację w bazie 19.
POWODY DLA PODSTAWY x
Baza 10 - Model wszystkich naszych rzeczy, ponieważ mamy 10 cyfr liczących (stopy są dziwne i śmierdzą, więc ich nie używamy).
Baza 2 - komputery używają tego do bitów (włączanie / wyłączanie). Jest to związane z czytelnymi poziomami napięcia propagowanymi przez bramki / tranzystory / kondensatory.
Baza 8 - Stara, dawniej, kiedy komputery nie były super ogromne (lub wstecz, gdy były kosmiczne) to było dobre na coś takiego (nie podoba mi się to ani trochę)
Baza 16 - Dobra do pokazywania górnych i dolnych części bajtu w celu manipulowania bitami. Jest to bardzo przydatne w świecie sprzętu osadzonego / fpga /.
NORMALNE PODSTAWY W KOMPUTERACH
Na wstępie mogę powiedzieć dokładnie, jak „włączony” jest kolor w heksadecymalnej wartości RGB, która jest mi podana, w konsekwencji może być reprezentowany w jednym int w sprzęcie, a następnie z pewnymi przesunięciami może zostać mi zwrócony łatwy w obsłudze, 1 złożony kolor = 1 punkt danych, który jest przydatny przy przetwarzaniu dużych obrazów przy ograniczonej pamięci. Porównaj to z podstawową reprezentacją 10, możesz dodać je wszystkie i zapisać je w liczbach, ale która to liczba, która może, a może R to czas 10000, G to 100, a B to jego własna przestrzeń, to dużo operacji matematycznych , zwykle mnożenie kosztuje więcej cykli niż przesunięcie, więc twój następny element danych jest już w kolejce, zanim skończysz przetwarzać ostatni kawałek, ups, to już nie ma.
Czasami po prostu lepiej jest pracować w bazie 2, 8 lub 16. W przypadku większości maszyn mnożenie przez 2 to tylko niewielka zmiana, te są super szybkie, to samo z dzieleniem przez 2.
Aby jeszcze bardziej wyjaśnić ideę kręcenia się po kawałku. Podczas pracy w środowisku osadzonym wiele razy potrzebowałem dostępu do szeregu lampek, przełączników lub innych elementów zmapowanych w rejestrze.
W takim przypadku przypisanie do każdego przełącznika całego znaku, bajtu lub liczby int byłoby nieefektywne i głupie, przełącznik lub lampka ma 2 pozycje - włączanie i wyłączanie - dlaczego miałbym przypisywać coś, co ma do 256 pozycji lub 2 ^ 16 pozycje itp. Każde światło w tablicy może mieć 1 bit pasujący do 8 lub 16 lub 32 lub 64 lub 128 (szerokość twojego typu danych) w jednym słowie / rejestrze. Wydajność przestrzeni jest potrzebna i raczej mile widziana.
Używanie czegokolwiek, co stanowi podstawę 2 ^ n, w programowaniu do obsługi danych RGB, wielu danych sygnałowych - GPS, audio, ascii itp. - jest znacznie prostsze w trybie szesnastkowym, binarnym i ósemkowym, ponieważ jest to sposób, w jaki jest reprezentowany w maszynie i można łatwiej rozpoznać, co jest prezentowane i jak nim manipulować.
KORZYSTANIE Z NIESAMOWITEJ PODSTAWY
Nie ma wydajności, chyba że ją kodujesz. Potrzebujesz bazy 11, musisz ustawić dla niej typ danych i przeciążać operatorów, aby obsłużyć ich reprezentację dla użytkownika. Nie widzę powodu, dla którego system zawierający 5 przedmiotów i tylko posiadający wielokrotności 5 przedmiotów musiałby zostać przekształcony w matematykę pięciu przedmiotów. Co więcej, lepiej módlcie się, aby ktokolwiek zdecydował się napisać swój kod dla bazy 271, dobrze go udokumentował, lub można poświęcić więcej czasu na jego zrozumienie, niż jest to warte, tworząc bazę 271, ponieważ wszystkie elementy są wielokrotnością 271.