exculibrus pisze:Jeśli większe liczby nie mieszczą się w przewidzianym obszarze to jak to zapisywać ?
Wszystko zależy od zastosowań. W zależności od tego jak dużej liczby potrzebujesz musisz dla nie zarezerwować odpowiedni obszar pamięci.
Najprostszy sposób zapamiętania dużej liczby to umieszczenie jej kolejnych cyfr dzisiętnych w łańcuchu znaków.
exculibrus pisze: Nauczyciel informatyki powiedział mi dzisiaj że to jest tak iż wszystkie procesory posługują się 8 bitam
Przypuszczam, że chodziło mu o fakt, że posługujemy się pojęciem bajtu (oktetu) który skład się z 8 bitów co stanowi dla nas 1 znak lub zakres wartości od 0 do 255.
exculibrus pisze:jeśli mam procesor 32b to na jedno taktowanie procesor przelicza te 4B, a jeśli zapisuję liczbę 1 000 000, to zapisuję ją w 7 bitach, w każdym inną cyfrę...
Taktowanie wiąże się z szybkością wykonywania instrukcji i odnosi się do częstotliwości.
Dla procesorów 32 bitowych podstawowe rejestry posiadają długość 32 bity czyli 4 bajty.
Jest to domyślna wielkość liczby całkowitej (integer) oraz wskaźnika adresującego pamięć (pointer).
Liczba 1 000 000 - jeżeli jest to liczba binarna to to odpowiada dziesiętnie wartości 64.
Taką liczbę można zapisać na wiele sposobów
w 1 bajcie zmienna typu char odpowiadająca znakowi @
w 2 bajtach zmienna typu short, w której jeden bajt jest równy zero a drugi 64
w 4 bajtach zmienna typu int, w której 3 bajty są równe zero, a jeden 64
i na wiele innych sposobów w zależności od tego do czego jest nam potrzebna.
exculibrus pisze:
Jeśli większe liczby nie mieszczą się w przedziale to jak je zapisujemy? Domyślam się że mogę użyć kombinację: znak+ mantysa znormalizowana + wykładnik, ale to i tak są wyniki ograniczone.
Nie istnieją sposoby zapisu liczby dowolnej długości w sposób jednoznaczny i dokładny w pamięci komputera. Wystarczy wziąć po uwagę
\(\displaystyle{ \sqrt{2}}\) lub
\(\displaystyle{ \pi}\) . Liczby te posiadają nieskończenie wiele miejsc po przecinku i nie istnieje ogólny sposób rozwiązania takiej trudności jak zapisanie ich dokładnej wartości.