Jump to content
Robert1995

Logica pe biti pe scurt si simplu

Recommended Posts

Logica pe biti e simpla , chiar daca pare grea de inteles la inceput , tocmai am invat-o si eu

in 10 de minute :) si am reusit si sa inteleg ce face 1 >> 2 in php pentru ca google nu e asa ' generos ' .

In Fine , stiu ca e ceva banal , dar vreau sa invat si pe altii , mersi em inca o data.

Daca stiati asta deja si vreti sa faceti pe destepti , sau poate vi se pare postul inutil nu ezitati sa frecati topicul .

Numerele pe biti :

1 - > 0000000000000000000000000000001

2 - > 0000000000000000000000000000010

3 - > 0000000000000000000000000000011

4 - > 0000000000000000000000000000100

// Sorry Dar asa e .

5 = 101 = 2^2 + 1

6 = 110 = 2^2 + 2

7 = 111 = 2^2 + 2 + 1

8 = 1000 = 2^3

9 = 1001 = 2^3 + 1

Credca daca priviti atenti va dati seama cum merg lucrurile :) .

Eu am vrut sa invat despre " >> " in php , dupa ce am facut un for ( mai jos ) , mi-am dat seama cum merge , easy :) .


<?php for($i = 1 ; $i <= 100 ; $i++){
echo $i." >> 2 - > ";
echo $i >> 2;
echo "<br/>";
}
?>

Explicatie


<?php
echo 1 >> 2 ; // arata 0
echo 2 >> 2 ; // arata 0
echo 3 >> 2 ; // arata 0
echo 4 >> 2 ; // arata 1
/*
Explicatie , arata cu cati 'biti' e mai in stanga ,
sau in dreapta dupa 'parametru' ( nu stiu cum i se spune ) :
'<<' , '>> ' .
|
4 -> ... 100
3 -> ... 011
2 -> ... 010
|
*/
?>

Hope I helped :)

Edit : Scuzati de Zero in plus din coada si mersi ca mi-ati zis redox si andrew, o seara buna

Edited by Robert1995
Link to comment
Share on other sites

Defapt numerele aratate de tine au cate un zero in coada in plus. Primul numar reprezinta doi, in cazul dat de tine (asta e doar un exemplu).

Intr-o alta ordine de idei, operatiile >> << sunt operatii pentru biti, asa numitele operatii shift care reprezinta inmultirea/impartirea cu 2 de un numar k de ori specificat de tine. :-)

Edited by Andrei
Link to comment
Share on other sites

Numerele pe biti :

1 - > 0000000000000000000000000000001

2 - > 0000000000000000000000000000010

3 - > 0000000000000000000000000000011

4 - > 0000000000000000000000000000100

5 - > 0000000000000000000000000000110

6 - > 0000000000000000000000000000111

7 - > 0000000000000000000000000001000

8 - > 0000000000000000000000000001100

9 - > 0000000000000000000000000001110

Ai invatat gresit !

De la 1 la 4 e corect.

5 = 101 = 2^2 + 1

6 = 110 = 2^2 + 2

7 = 111 = 2^2 + 2 + 1

8 = 1000 = 2^3

9 = 1001 = 2^3 + 1

O sa mai citesc din articol sa-ti mai corectez, daca e cazul.

Atentie inca o data, odata invatat gresit ceva, e greu sa inveti "peste" corect.

LE : "Hope I helped :-)" uhm..nope.

Edited by begood
Link to comment
Share on other sites

@begood mi-am dat seama ca am gresit , nu stiu pe ce site m-am uitat cand am invatat , arata si un 0 la sfarsit , dar am dat clean la history ieri , in fine sorry si eu azi la scoala mi-am dat seama .am editat

@em . Hmm habar nu am , intentia nu e asta , vroiam sa invati operatori pentru php nu olimpiada la informatica sau altceva , am incercat 20 de minute cu" | , & , shifterii " , diferite 'abordari ' , 250749 era cea mai apropiata valoare la care am ajuns

Edited by Robert1995
Link to comment
Share on other sites

Daca tot ai in?eles asta î?i propun o problem?.


int a=31337;
cout<<a*9;

Scrie-mi un cod echivalent (mai rapid ca ?sta).

mov a,31337 -> valoarea de inmultit

mov b,a -> salvam a in b

shl a,3 -> o inmultim cu 8 (shl cu 3 inseamna inmultire cu 2^3; shl cu 4 ar fi insemnat inmultire cu 2^4)

add a,b -> noi aveam nevoie de inmultire cu 9, deci la rezultatul a*8 mai adaugam valoarea initiala

nu stiu daca este mai rapid, dar face acelasi lucru cu 31337*9

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...