TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Komputer, a liczby... , JE Jacaw 3/01/02 09:58 ...pewnie dla wielu to pytanie wyda sie banalne, ale ja niestety jestem kompletne zero z programowania.
Chodzi o to w jaki sposob komputer zapisuje liczby (sprawa cechy i mantysy - czy jak to sie tam nazywa). Najlepszy bylby namiar na jakis wyklad w internecie (ale prostym jezykiem napisany) z dokladnym wyjasnieniem np. problemu w stylu, ze dana liczbe zapisujemy w 10 bajtach z czego 8 zarezerwoane jest na ceche, a 2 na mantyse (lub odwrotnie, bo w zasadzie to nie wiem co jest co).
I jeszcze jedna sprawa, na jednym z wykladow na AE, jeden z dr'ow powiedzial, ze podobno w informatyce nie ma 0 ("zera"), niestety od tamtego czasu nie mialem (i chyba nie bede mial) mozliwosci, aby go o to zapytac, a sprawa caly czas chodzi mi po glowie... Gdyby to co powiedzial mialo sens, to stad moglby wynikac blad, o ktorym calkiem niedawno bylo glosno, a wypatrzony byl w Excelu (chodzilo o sumowanie liczb ulamkowych, ktorych wynik powinien byc 0, ale gdy jedna z liczb do sumowania bylo zero pojawial sie zapis w stylu 1E+cos tam).
Z gory dziekuje za pomoc lub namiar.Socjalizm to ustrój, który
bohatersko walczy z problemami
nieznanymi w innych ustrojach - Re: , exmac 3/01/02 10:13
Dla komputera wszystko, to tylko zera i jedynki. Ich interpretacja to inna sprawa. Są różne typy liczb zmiennoprzecinkowych. Zobacz w dokumentacji do języka programowania, którego używasz.- Zle sie wyrazilem... , JE Jacaw 3/01/02 10:21
...chodzi mi o (nie wiem czy wyraze sie wlasciwie) reprezentacje binarna tych liczb. Co do jezyka... to obecnie nie programuje i nic na ten temat nie wiem... jednak po prostu te dwie sprawy mnie bardzo zainteresowaly i chcialbym sie cosik na ich temat dowiedziec.Socjalizm to ustrój, który
bohatersko walczy z problemami
nieznanymi w innych ustrojach - a więc reprezentacja jest taka :))) , ili@s 3/01/02 12:57
system dwójkowy
0 - 0
1 - 1
2 - 10
3 - 11
4 - 100
i tak dalej
ponieważ bajt ma 8 bitów( w tym wypadku 8 cyferek 0 lub 1) to w zależności od wielkości liczby masz potrzebną ilość bajtów :)))
a po za tym to komputer tylko dodaje (odejmowanie to też dodawanie liczby ujemnej)- To wiem, ale... , JE Jacaw 3/01/02 14:44
...np. jak zapisac 2,125 ? Wiem, ze liczy niecalkowite uzyskuje sie dzieki tej cholernej mantysie i cesze (ale glupio sie odmienia "cecha" ;-))), ale nie wiem jak i mi to spokoju nie daje. :-(((Socjalizm to ustrój, który
bohatersko walczy z problemami
nieznanymi w innych ustrojach
- Re2: , mic 3/01/02 15:29
Załóżmy, że chcemy zapisać liczbę rzeczywistą na 80 bitach i niech mantysa będzie 60 bitowa a cecha 20 bitowa (liczby przykładowe wyssane z palca). Cecha zapisywana jest w kodzie U2, czyli w naszym przypadku będzie to liczba z przedziału [-2^20,2^20-1]. Natomiast mantysa jest liczbą z przedziału [0,1 do 0,111111…111] (oczywiście jest to zapis w systemie dwójkowym). BTW jest to tzw. postać znormalizowana mantysy. Liczba w tej reprezentacji ma postać:
L = +/-mantysa^cecha. (jeden bit mantysy przeznaczony jest na znak liczby).
Jak widzisz w tej reprezentacji nie ma zera! Myślę, że jest to w miarę jasno przedstawione.- ależ wodzu! co wódz! , pachura 3/01/02 18:40
przeciez wszystkie bity mantysy mozna ustawic na 0 i wtedy wartosc calej liczby bedzie zero.
A dokladnie to jest tak:
liczba=((-1)^s) * (2^c) * m
gdzie s-znak (1 bit), c - cecha (odpowiedzialna za zakres liczby zmiennoprzecinkowej), m - mantysa (odpowiedzialna za dokladnosc liczby)
Zeby zapisac liczbe zmiennoprzecinkowa trzeba zrobic cos takiego:
przesuwamy przecinek przed pierwsza jedynke i zapamietujemy liczbe przesuniec w cesze (np jak mamy liczbe jedenascie - binarnie 1011 przesuwamy przecinek w lewo o 4 pozycje - mamy 0,1011 i teraz cecha=4, a mantysa=1011 (taki jest zapis w pamieci a oznacza on jedenascie szesnastych bo pierwsza jedynka od lewej to 1/2, trzecia jedynka to 1/8 czwarta - 1/16 - razem 11/16) bit znaku = 0, ze wzoru wychodzi ze wszystko sie zgadza bo ((-1)^0)*(2^4)*(0,1011) = 1011
Jak chcemy zapisac zero to ustawiamy wszystkie bity na zera i po klopocie
Tak to (chyba ;)) wyglada w duzym skrocie- zapomnialem dodac , pachura 3/01/02 18:43
ze mantysa przyjmuje wartosci <1/2;1) (jedna druga do jeden lewostronnie domkniety) bo przesuwamy przecinek przed pierwsza jedynke w liczbie i dlatego jest co najmniej 1/2 (z wyjatkiem sytuacji w ktorej zapisujemy zero) - odnośnie mantysy , mic 3/01/02 19:59
to dlaczego raz piszesz, że mantysa przyjmuje wartości z przedziału [0,5;1] (tutaj się zgadzam), a z drugiej strony twierdzisz, że aby zapisac zero należy usatwić wszystkie bity na zera. Wtedy mantysa będzie przecież równa zero.- i jeszcze jedno , mic 3/01/02 20:04
co by było gdyby zarówno mantysa jak i cecha były równe zero. zero do potęgi zero? coś tu nie pasuje.- once more , pachura 3/01/02 20:32
mantysa=0 to jest wyjatek wystepujacy tylko gdy zapisywana liczba jest rowna zero, w pozostalych przypadkach manstysa zawiera sie w przedziale <1/2;1)
a jak m i c sa rozne zero to wcale nie jest zero do zerowej tylko (2^0)*0=0 i wszystko sie zgadza - to Twoj wzorek (m^c) jest bledny.
A tak na chlopski rozum - byloby totalną bzdurą gdyby nie mozna bylo zapisac liczby "0", no nie??- mój błąd , mic 3/01/02 20:54
faktycznie, wziąłem stary wykład ze wstępu do informatyki i wszystko się wyjaśniło. Oczywiśnie masz rację. Tak to jest jak się siedzi przed monitorem od 8.00.- Oh fuck! O czym wy mówicie? , Norton 3/01/02 23:14
Chyba jestem niedouczony bo za żadne skarby nie mogę pojąć o czym mowa.
Za dużo piwa za mało wykładów :)Zmień swój podpis na Boardzie
maks 100 znaków, 3 linie,
zabroniony spam oraz reklama
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|