Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void displayBinary(int a){
- short v[32];
- for(int i=0; i<32; i++)
- {
- v[i] = a & 1;
- a = a >> 1;
- }
- for(int i=31; i>=0; i--)
- cout << v[i];
- cout << endl;
- }
- int main()
- {
- unsigned int a = 0; /// 32 de biti de 0
- /// 00000000000000000000000000000000 = 0
- /// 00000000000000000000000000000001 = 1
- /// 00000000000000000000000000000010 = 2
- /// 00000000000000000000000000000011 = 3
- /// 00000000000000000000000000000100 = 4
- /// .....
- /// 11111111111111111111111111111111 = 4294967295 (2^32 - 1)
- int b=1; /// SHIFTARE BITI == INMULTIRE/IMPARTIRE CU 2^NR_BITI_SHIFTATI
- b = b << 1; /// echivalent cu b = b*2;
- b = b << 3; /// echivalent cu b = b*8;
- b = b >> 1; /// echivalent cu b = b/2;
- a = 256;
- displayBinary(a);
- a = a + (1<<5); /// daca deja este ceva pe pozitia 6, va muta ambii pe pozitia 7 /// ADUNARE PE BITI
- /// 00000000000000000000000000100000 = 32;
- /// 00000000000000000000000100000000 = 256
- displayBinary(a);
- /// setez bitul de pe pozitia luui 2^5 (al saselea de al coada) = adica il fac 1, indiferent ed cat era
- a = a | (1<<5); /// SAU LOGIC PE BITI
- displayBinary(a);
- /// ca sa schimb valoarea bitului (daca era 0 se face 1, daca era 1 se face 0) XOR
- /// pe pozitia 6 am cu siguranta 1 de la SAU-ul anterior
- a = a ^ (1<<5); /// XOR LOGIC PE BITI (sau exclusiv)
- displayBinary(a);
- /// pentru testarea adac un bit este setat, se foloseste si logic pe biti:
- if(a & (1<<5)) cout << "bitul 6 este 1";
- else cout << "bitul 6 este 0";
- /// la ce ma ajuta toata povestea
- /// * inmultire/impartire cu puteri a lui 2 foarte rapide
- /// * daca vreau sa tin minte anumite setari de tip flag (32 ed flag-uri pot fi tinute intr-un singur int)
- cout << endl;
- cout << endl;
- cout << endl;
- // DISCUTIA CU SEMN
- int c = -4; /// 32 de biti de 0
- /// 00000000000000000000000000000000 = 0
- /// 00000000000000000000000000000001 = 1
- /// 00000000000000000000000000000010 = 2
- /// 00000000000000000000000000000011 = 3
- /// 00000000000000000000000000000100 = 4
- /// 11111111111111111111111111111100 = -4
- /// 00000000000000000000000000000011 = 3
- /// 00000000000000000000000000000100 = 4
- /// 11111111111111111111111111111111 = -1
- displayBinary(c);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement