Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: zapis liczb w pamieci  (Przeczytany 727 razy)

0 użytkowników i 2 Gości przegląda ten wątek.

Jemasoft_

  • Gość
zapis liczb w pamieci
« Odpowiedź #15 dnia: 24 Sierpnia 2002, 02:05 »
O ja pierdziele.  

Kombinuj. Ta kulka na koncu szyi nie tylko do noszenia czapki sluzy.

kromek_

  • Gość
zapis liczb w pamieci
« Odpowiedź #16 dnia: 24 Sierpnia 2002, 02:07 »
no fakt, znajduje sie tam otwor gebowy przez ktory wprowadzamy chipsy i piwo

Slay_

  • Gość
zapis liczb w pamieci
« Odpowiedź #17 dnia: 24 Sierpnia 2002, 02:10 »
>:O ja pierdziele.  
>:
>:Kombinuj. Ta kulka na koncu szyi nie tylko do noszenia czapki sluzy.

hehe
dobra, ma Pan racje
nie mozna byc az tak leniwym
tylko, ze jak bede sie tak nad wszystkim zastanawial i kombinowal
to znowu stace ochote na programowanie

Jemasoft_

  • Gość
zapis liczb w pamieci
« Odpowiedź #18 dnia: 24 Sierpnia 2002, 02:18 »
To jest wlasnie ten subtelny smaczek. Jak sam dojdziesz to bedziesz mial radoche. Jak sie zniechecisz to znaczy, ze sie nie nadajesz do tego a myslec trzeba niestety przez cale zycie a moze i jeszcze dluzej.  

Slay_

  • Gość
zapis liczb w pamieci
« Odpowiedź #19 dnia: 24 Sierpnia 2002, 02:21 »
>:To jest wlasnie ten subtelny smaczek. Jak sam dojdziesz to bedziesz mial radoche. Jak sie zniechecisz to znaczy, ze sie nie nadajesz do tego a myslec trzeba niestety przez cale zycie a moze i jeszcze dluzej.  

wrrrr racyje kumie rzeczecie bede kombinowal az do skutku, tylko moze nie dzis juz. tzn dzis ale nie teraz - pozniej, bo... pora na dobranoc, bo juz ksiezyc...

dobranoc Panu zycze

Jemasoft_

  • Gość
zapis liczb w pamieci
« Odpowiedź #20 dnia: 24 Sierpnia 2002, 02:34 »
Niech Basic bedzie z Toba. Fractalowych snow zycze.

Slay_

  • Gość
zapis liczb w pamieci
« Odpowiedź #21 dnia: 24 Sierpnia 2002, 09:52 »
>:Niech Basic bedzie z Toba.

wolalbym Asembler, bo w tym teraz robie

Slay_

  • Gość
zapis liczb w pamieci
« Odpowiedź #22 dnia: 28 Sierpnia 2002, 22:18 »
a niech diabli wezma te basicowskie liczby. tfuuu!
sam se swoje wymysle

Offline Yovish

  • Level 3
  • ***
  • Wiadomości: 238
zapis liczb w pamieci
« Odpowiedź #23 dnia: 15 Września 2003, 14:08 »
>:a niech diabli wezma te basicowskie liczby. tfuuu!
>:sam se swoje wymysle  
 
Zerknij sobie najpier na ponizsza stronke...
 
http://www.astro.amu.edu.pl/Staff/Tkastr/Infor/infor25/node14.html
--------------------------------------------------------------------------------
Kodowanie informacji  
--------------------------------------------------------------------------------
Podrozdzialy:  
- Kodowanie tekstu  
- Kodowanie liczb calkowitych  
- Kodowanie liczb rzeczywistych  
- Bledy zaokraglen  
- Kodowanie informacji z nadmiarem  
- Reprezentacja kolorow  
- Kodowanie grafiki 2D  
- Kodowanie dzwieku  
- Szyfrowanie informacji  
- Po co szyfrowac?  
- Jak szyfrowac?  
- Szyfrowanie z kluczem publicznym  
- Podpis cyfrowy  
- Odwrocenie sytuacji szyfrowania z kluczem publicznym  
- Jednostronna funkcja znacznikowa (hash function)  
- Zastosowania podpisu cyfrowego
 
Milego wymyslania...

charnooh_

  • Gość
zapis liczb w pamieci
« Odpowiedź #24 dnia: 19 Września 2003, 06:32 »
W liczbach calkowitych, c64 zapisuje najpierw mlodszy bajt, a potem starszy, adres ostatniej zmiennej jest zapisany w komorkach 71-72 ($47-$48), czyli, jezeli chcesz uzyskac dostep bezposredni do ostatniej zmiennej to:
Mozna zrobic tak:
10  a=[ilestam]
....
430 a=a [zeby uzyc zmiennej]
440  x= peek(71)+peek(72)*256
I w zmiennej x mamy adres ostatniej zmiennej
 
Zminne rzeczywiste sa zapisywane w 7 bajtach:
2 pierwsze to nazwa zmiennej
a 5 nastepnych to liczba
z ktorych 1  bajt to wykladnik, a 4 nastepny, to znak i mantysa
W c64 przyjeto reprezentacje liczb rzeczywistych:
 
(-1)^b*(1+c)*2^(a-129), gdzie |c|<:+1
 
w pamieci wyglada to tak:
 
x:=1.27
 
0047 03 08 - wiec skaczemy do $0803
 
0803 58 00 81 22 8f 3c 29
          X      1.27 ( a=129, b=0, c=0.27 )
 
Zmienna calkowita:
2 pierwsze bajty to nazwa (bajty zwiekszone o $80), 2 nastepne to liczba w kodzie uzupelnien do 2, a 3 nastepne sa zerowe
czyli:
 
XY%=17
 
0047 0a 08 (skaczemy...)
 
080a d8 d9 ff ef 00 00 00
         X   Y   17
od pierwszych 2 nalezy odjac $80, natomiast 2 nastepne to liczba.
Jezeli wartosc tych nastepnych jest wieksza niz 32767 ($7fff), to wtedy liczbe liczy sie od tylu, i jest ujemna (pierwszy bit oznacza znak) czyli:
$ffff =-1
$fffe = -2
itd...
czyli jezeli liczba jest wieksza od 32767 to nalezy przeliczyc ja przez wzor
 
XY% = [liczba w pamieci] - 65535
 
Lancuchy:
2 pierwsze bajty to nazwa (drugi zwiekszony o $80) nastepny to dlugosc lancucha, a 2 nastepne to adres (lancuchy sa przechowywane na koncu pamieci Basic od 9ffff w dol),  a 2 nastepne sa zerowe, czyli:
 
AB$=":TEST":
 
0047 11 08
 
0811 41 c2 04 fc 9f 00 00
         A   B   4  adres
czyli mamy 4 znakowy lancuch zaczynajacy sie w $9ffc, czyli:
 
9ffc 54 45 53 54
       T   E   S   T
 
I to by bylo na tyle (chociaz zapisu zmiennych rzeczywistych sam do koncz nie rozumie)....

Slay_

  • Gość
zapis liczb w pamieci
« Odpowiedź #25 dnia: 19 Września 2003, 17:03 »
dzinx! wreszcie ktos konkretny dzienki chopce - po tysiackroc!
 
pozdro fur alle!

recces_

  • Gość
zapis liczb w pamieci
« Odpowiedź #26 dnia: 03 Lutego 2004, 17:24 »
mala sugestia.. czarna robote z liczbami calkowitymi i rzeczywistymi zostaw basicowi zawartemu w romie... (przestudiuj procedury od $a000).. a jesli chcesz pisac swoje.. to opieraj sie czesciowo na tych z romu.. sa to jedne z najszybszych procedor matematycznych (szybszych w 8 bitach nie ma:P) a  skup sie przedewszystkim na procedurach wyswietlania, formatowania i obslugi ( to skolei comcio ma najwolniejsze:P widzialem kilka roznych wersji kernela, ktore biegaly 30% szybciej niz oryginalny)