Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Byte tip sta i kako

[es] :: Pascal / Delphi / Kylix :: Byte tip sta i kako

[ Pregleda: 2290 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BIG FOOT

Član broj: 2964
Poruke: 449
*.ptt.yu.



Profil

icon Byte tip sta i kako21.11.2004. u 06:42 - pre 236 meseci
Da li bi neko bio toliko ljubazan da mi ...(mali predah) objasni specificnosti byte tipa?
Cemu i kako sluzi i slicno...
Poz,
BF
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Byte tip sta i kako21.11.2004. u 13:25 - pre 236 meseci
Sve to imas u help-u...
Byte ti je, ako se ne varam, 8-smo bitni unsigned... Znaci opseg je od 0..255.
 
Odgovor na temu

BIG FOOT

Član broj: 2964
Poruke: 449
*.yu
Via: [es] mailing liste



Profil

icon Re: Byte tip sta i kako21.11.2004. u 18:17 - pre 236 meseci
Izvinjavam se.
Bio sam u lin-u, pa nisam pogledao.
Preciznije,
kako se prave neke maske (bit ...byte...jbg).
Nadam se da nisam previse nejasan :)
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: Byte tip sta i kako21.11.2004. u 18:48 - pre 236 meseci
Citat:
BIG FOOT: Nadam se da nisam previse nejasan :)


Nejasan si :)

Za pravljenje bit maski ti treba osnovno poznavanje bulove algebre, a konkretno za Delphi ti treba i poznavanje bitwise operatora. Mnogo je vazno i da znas binarnu i hex notaciju brojeva, a ako ne znas koristi windows calculator (scientific view).
Evo ti primer jedne maske (ova konkretno sluzi da proveris da li je broj neparan):

Code:

function JesteNeparan(x: integer): Boolean;
begin
  result := (x and 1) = 1;
end;


Ovaj kood gore ti radi sledece:

npr, neka je x = 117;

to je binarno (32 bita, jer je integer):

00000000000000000000000001110101

and (ovo nije boolean nego bitwise operator)

00000000000000000000000000000001
-------------------------------------

dakle, (117 and 1) = 1;

u bitwise operacijama se gleda svaki bit operanada odvojeno (prvi bit od x sa prvim bitom 1, i tako do kraja).
za and: 0 and 0 == 0; 0 and 1 == 0; 1 and 0 = 0; 1 and 1 = 1.

Ako ti i dalje nije jasno zasto, pronadji negde na netu tablice bulovih operacija, pa malo pogledaj.

To ti je najjednostavnija maska (vadi jedan bit, najmanje tezine, iz operanda x).

Ako na primer zelis da dobijes 4 posledna bita u bajtu, maska bi bila:

x and 15, odnosno u hex notaciji x and $0F. x bi bio tipa byte.

ako zelis drugi bajt iz integera:

x and 65280, tj. x and $0000FF00

Inace, sto se tice byte-a, novi procesori su jako optimizovani za rad sa 4byte podacima, tj. integerima (i aritmeticke operacije i pristup memoriji), tako da se eventualna usteda u prostoru placa performansama. Mada, ruku na srce, ni jedno ni drugo ti na modernim racunarima ne predstavlja problem, tako da je stvar da li ces koristiti byte ili integer u svojim programima, vise licne preferencije.
Ono gde se byte koristi su strukture (npr. hederi raznih fajlova, paketi za komunikaciju kao sto je TCP/IP, i slicno). Mnogi formati su nastali u doba kad je svaki bajt bio dragocen, pa su informacije gusto pakovane. Da bi te informacije citao, moras imati podrsku za 'stare' tipove podataka, kao sto je byte.

ux, bas se raspisah...

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
*.vdial.verat.net.

Sajt: www.diy-fever.com


+1 Profil

icon Re: Byte tip sta i kako21.11.2004. u 22:49 - pre 236 meseci
maske ti sluze da postavis odredjeni bit na 0 ili jedan (najcesce). na nula postavljas operacijom and (sledi iz tautologije p and false = false) na sledeci nacin:

neka je b bajt koji menjas, mask bajt maska i i indeks bita koji menjas na 0
Code:

  mask := 254 shl (i - 1);
  b := b and mask;


kada hoces da postavis na 1 onda koristis tautologiju p or true = true
Code:

  mask := 1 shl (i - 1);
  b := b or mask;


kad hoces samo da promenis bit bez obzira na to koji je (1 -> 0, 0 -> 1) koristis p xor 1 = not p;
Code:

  mask := 1 shl (i - 1);
  b := b xor mask;


i to bi bilo to otprilike :)
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

BIG FOOT

Član broj: 2964
Poruke: 449
*.yu
Via: [es] mailing liste



Profil

icon Re: Byte tip sta i kako22.11.2004. u 09:01 - pre 236 meseci
Citat:

sasas: Nejasan si

I ti si. :)
Ma salim se.
Jos uvek nisam sve probao u delfiju, ali otprilike shvatam :)
Matematika mi nije problem, ja sam MG-ovac :)

@bancika
Da li si ti pokazao kod za prebacivanje 010 u 101 ili ovaj kod radi kao
net maska.
Trenutno mi je win daleko (razdvaja nas restart) pa te pitam sta
je od ova dva?
 
Odgovor na temu

BIG FOOT

Član broj: 2964
Poruke: 449
*.yu
Via: [es] mailing liste



Profil

icon Re: Byte tip sta i kako22.11.2004. u 09:07 - pre 236 meseci
Ok, procitao sam jos jednom i sad je taman.
Hvala bancika-i i sasas-u.

BF
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Byte tip sta i kako

[ Pregleda: 2290 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.