Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Promilus 19:22
 » KHot 19:21
 » NimnuL 19:17
 » Visar 19:15
 » Dexter 19:13
 » ligand17 19:12
 » DJopek 19:12
 » steve 19:10
 » john565 19:07
 » Draghmar 19:02
 » Rafael_3D 18:58
 » sszpila 18:56
 » Lucullus 18:54
 » Artaa 18:53
 » PeKa 18:48
 » Ramen 18:48
 » tuptun 18:46
 » P@blo 18:42
 » Paweł27 18:41
 » DYD 18:40

 Dzisiaj przeczytano
 41122 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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

  1. 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.

    1. 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

      1. 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)

        1. 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

  2. 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.

    1. 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

      1. 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)

      2. 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.

        1. 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.

          1. 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??

            1. 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.

              1. 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