UNIX, Linux, Programare, Scripting, Retele
unix, linux, programare, script, hosting, server, retele
|
Nou pe simpatie: Aandreea pe Simpatie
 | Femeie 24 ani Bucuresti cauta Barbat 25 - 52 ani |
|
|
UNIX, Linux, Programare, Scripting, ReteleReguliInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
|
| #1 |
!_30near connection ..Din: nowhere ?
Postari: 47
|
|
Am si eu o nedumerire mare : in legatura cu acesti zici shifting operator's.
Shifting is much faster than actual multiplication (*) or division (/) by 2. So if you want fast multiplications or division by 2 use shifts.
Dar nu-mi dau seama cum functioneaza faza 
lucreaza cuy chestii de genu : x<<2 etc.. sau x>>2 .. dar nu-mi dau seama.De exemplu as vrea cu acesti shiting opearor's ( daca as siti cum ) , sa trasnform un numar in binar ( ca ei sunt ceva ca si cum as imparti la noi ) , cand merge e 1 , cand nu merge e 0 sau ceva de genu..Dar nu ma prind 
_______________________________________

|
|
| |
|
| #2 |
|
|
Nu stiu daca in C sintaxa e X SHL/SHR Y, dar ideea e asta: Poti sa dai X SHL Y (Shift Left) sau X SHR Y (Shif Right) ca sa 'shift-ezi' X-u cu Y biti. Exemple: - avem 4 ... daca dam 4 SHL 1 obtinem 8 (la fel ca 4*2) - avem 4 ... daca dam 4 SHL 2 obtinem 16 (la fel ca 4*4) - avem 4 ... daca dam 4 SHR 1 obtinem 2 (la fel ca 4 div 2) - avem 4 ... daca dam 4 SHR 2 obtinem 1 (la fel ca 4 div 4)
Lucrand cu numere binare: - avem 111 (=7) ... daca dam 111 SHL 1 obtinem 1110 (=14) - avem 111 (=7) ... daca dam 111 SHL 2 obtinem 11100 (=28)
- avem 111 (=7) ... daca dam 111 SHR 1 obtinem 11 (=3) - avem 111 (=7) ... daca dam 111 SHR 2 obtinem 1 (=1)
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| |
|
| #3 |
!_30near connection ..Din: nowhere ?
Postari: 47
|
|
Un exemplu concret gen : transformati un unsigned char ( pe 8 biti ) intr-un numar binar.II dai ceva de genu 128 si-ti da 10000000 .
Practic ideea e putin sucita 
_______________________________________

|
|
| |
|
| #4 |
suriPe lista neagrăDin: vizuina
Postari: 92
|
|
!_30, inteleg ca vrei sa convertesti unsigned 128 intr-un sir de 8 caractere de "1" sau "0". Fie un procesor pe 8 biti (ca sa-mi fie si mie mai simplu). Acumulatorul (A) are deci 8 pozitii: xxxxxxxx Prin electronica procesorului la stanga lui A exista un registru (C) care are 1 bit. Acel registru este tocmai "indicatorul de depasire - carry flag" . Deci dispunerea este asa: Cxxxxxxxx Cand tu incarci numarul tau (acel 128) in C,A situatia este asa: Cxxxxxxxx 010000000 Facand "Shift Logical Left" (SHL) situatia devine asa: Cxxxxxxxx 100000000 Deci primul bit este trecut in registrul/indicatorul C, iar in coada acumulatorului intra (fortat) un 0. Indicatorul C este testat, si daca contine 1, in sirul de iesire pui caracterul "1", iar daca contine 0, pui caracterul "0". Dupa un ciclu de 8 SHL ai toate cele 8 caractere din sir.
De ce asa ? Pur si simplu tu nu poti testa decat indicatorii. Deci ca sa vezi daca un bit este 0 sau 1 trebuie sa pozitionezi un indicator. Pentru numere unsigned, ca in exemplul cerut de tine este cazul sa pozitionezi/testezi indicatorul C.
Procesoarele de tip x86 au 6 idicatoare/flags. V. si http://www.arl.wustl.edu/~lockwood/clas ... H06-2.html
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| |
|