Zamiana na system dwójkowy

Użytkowanie arkusza kalkulacyjnego
Kator
Posty: 1
Rejestracja: śr lis 15, 2017 11:44 am

Zamiana na system dwójkowy

Post autor: Kator »

Czy Calc obsługuje system dwójkowy? Chodzi mi o zamianę 32-bitowej liczby na system dwójkowy
OpenOffice 3.1 na Windows Vista
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Zamiana na system dwójkowy

Post autor: Jan_J »

Istnieje funkcja Dec2Bin(liczba). Nie pamiętam jak się po polsku nazywa. Dość kiepska zresztą jest, co nie dziwi jeśli się pamięta jak działają arkusze kalkulacyjne.

Otóż w Calcu, jak i w produktach konkurencji, wszystkie dane liczbowe są typu double. Nie ma osobnego typu dla liczb całkowitych, nie ma gwarancji zgodności wyników działań na liczbach z działaniami w sensie matematyki.

Dec2Bin ma silne oganiczenie na wartość argumentu (2^8), a wynik jest tekstem składającym się ze znaków zer i jedynek. To jest dość sztuczne ograniczenie, da się napisać poprawnie działającą funkcję dla arkusza z ograniczeniem przez 2^31-1. Nawet więcej, do liczby cyfr dwójkowych gwarantowanych w typie double. Dalej może być problem z niereprezentowalnością niektórych liczb całkowitych poprzez dane double (a tylko takie są przechowywane w komórkach) -- chyba że będziemy konwertować teksty -- ciągi cyfr 0-9 na teksty -- ciągi cyfr 0-1, wtedy tych ograniczeń nie będzie.

Sprawdź https://forum.openoffice.org/pl/forum/v ... f=9&t=3453. Jest tam działająca funkcja w Basicu oraz kilka innych uwag.

Jeszcze "fajniejszy" byłby format binarny prezentacji liczb w komórce. Ale z tym byłoby trochę więcej roboty niż z napisaniem funkcji dla Calca. I kłopoty, wobec faktu że (1) te liczby tak naprawdę nie są calkowite, (2) że konwersja tekstu na tekst nie będzie tym sposobem możliwa.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ