This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
laboratoare:laborator-01 [2015/09/23 23:46] ionel.ghita [Exerciții] |
laboratoare:laborator-01 [2015/10/13 21:18] ionel.ghita [Sistemele binar și hexazecimal] |
||
---|---|---|---|
Line 34: | Line 34: | ||
* Pas 2: 7 / 16 = 0, rest **7** | * Pas 2: 7 / 16 = 0, rest **7** | ||
* Câtul este 0, deci putem obține numărul în hexazecimal scriind resturile în ordine inversă: **0x71** | * Câtul este 0, deci putem obține numărul în hexazecimal scriind resturile în ordine inversă: **0x71** | ||
- | |||
- | === Exercițiu === | ||
- | |||
- | Convertiți în binar/hexazecimal următoarele valori: | ||
- | |||
- | * 58 | ||
- | * 121 | ||
- | * 18446 | ||
=== Conversia din binar/hexazecimal în zecimal === | === Conversia din binar/hexazecimal în zecimal === | ||
Line 50: | Line 42: | ||
0xD9B1 <nowiki>=</nowiki> 1*16<sup>0</sup> + 11*16<sup>1</sup> + 9*16<sup>2</sup> + 13*16<sup>3</sup> <nowiki>=</nowiki> 55729 | 0xD9B1 <nowiki>=</nowiki> 1*16<sup>0</sup> + 11*16<sup>1</sup> + 9*16<sup>2</sup> + 13*16<sup>3</sup> <nowiki>=</nowiki> 55729 | ||
- | |||
- | === Exercițiu === | ||
- | |||
- | Convertiți în zecimal următoarele numere: | ||
- | * 0b11000 | ||
- | * 0b1011 | ||
- | * 0b1100010111010010 | ||
- | * 0xD8 | ||
- | * 0x7A | ||
- | * 0xBB29 | ||
=== Conversia intre binar și hexazecimal === | === Conversia intre binar și hexazecimal === | ||
Line 75: | Line 57: | ||
Operația inversă, conversia din binar în hexazecimal se poate face convertind fiecare grup de 4 biți în cifra corespunzătoare în hexazecimal. | Operația inversă, conversia din binar în hexazecimal se poate face convertind fiecare grup de 4 biți în cifra corespunzătoare în hexazecimal. | ||
- | |||
- | === Exerciții === | ||
- | |||
- | 1. Convertiți din hexazecimal în binar următoarele numere: | ||
- | * 0x5e | ||
- | * 0x4A01 | ||
- | * 0x0941D583 | ||
- | |||
- | 2. Convertiți din binar în hexazecimal următoarele numere: | ||
- | * 0b01111101 | ||
- | * 0b1000110000011111 | ||
- | * 0b1111101011101011 | ||
===== Reprezentarea numerelor ===== | ===== Reprezentarea numerelor ===== | ||
Line 223: | Line 193: | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
- | 1. [[http://linux.die.net/man/1/xxd|xxd]] este un utilitar Linux ce permite afișarea fișierelor binare în diferite formate. Puteți găsi o versiune pentru Windows aici: {{:laboratoare:xxd.zip|}}. | + | 1. Efectuați următoarele conversii între sisteme de numerație: |
+ | |||
+ | a. Din decimal în binar și hexazecimal: | ||
+ | * 58 | ||
+ | * 121 | ||
+ | * 18446 | ||
+ | |||
+ | b. Convertiți în zecimal: | ||
+ | * 0b11000 | ||
+ | * 0b1011 | ||
+ | * 0b1100010111010010 | ||
+ | * 0xD8 | ||
+ | * 0x7A | ||
+ | * 0xBB29 | ||
+ | |||
+ | c. Din hexazecimal în binar: | ||
+ | * 0x5e | ||
+ | * 0x4A01 | ||
+ | * 0x0941D583 | ||
+ | |||
+ | d. Din binar în hexazecimal: | ||
+ | * 0b01111101 | ||
+ | * 0b1000110000011111 | ||
+ | * 0b1111101011101011 | ||
+ | |||
+ | 2. [[http://linux.die.net/man/1/xxd|xxd]] este un utilitar Linux ce permite afișarea fișierelor binare în diferite formate. Puteți găsi o versiune pentru Windows aici: {{:laboratoare:xxd.zip|}}. | ||
Se dă fișierul binar din arhiva următoare: {{:laboratoare:binary_file.zip|}}. | Se dă fișierul binar din arhiva următoare: {{:laboratoare:binary_file.zip|}}. | ||
Line 231: | Line 226: | ||
* hexazecimal | * hexazecimal | ||
- | 2. Scrieți un program C cu ajutorul căruia să afișați următorul șir hexazecimal ca text: 48455820526f636b73210a. | + | 3. Scrieți un program C cu ajutorul căruia să afișați următorul șir hexazecimal ca text: 48455820526f636b73210a. |
<note> | <note> | ||
Line 240: | Line 235: | ||
</note> | </note> | ||
- | 3. Se dau următoarele declarații de variabile în C: | + | 4. Se dau următoarele declarații de variabile în C: |
<code c> | <code c> | ||
Line 263: | Line 258: | ||
</note> | </note> | ||
- | 4. Afișați valorile variabilelor c, d și e din programul de mai jos și explicați rezultatele (puteți converti valorile în binar pentru a observa mai ușor cauzele): | + | 5. Afișați valorile variabilelor c, d și e din programul de mai jos și explicați rezultatele (puteți converti valorile în binar pentru a observa mai ușor cauzele): |
<code c> | <code c> | ||
Line 281: | Line 276: | ||
</code> | </code> | ||
- | 5. Scrieți un program C cu ajutorul căruia să efectuați operația XOR între următoarele șiruri haxazecimale (caracter cu caracter) și afișați rezultatul ca text: | + | 6. Scrieți un program C cu ajutorul căruia să efectuați operația XOR între următoarele șiruri haxazecimale (octet cu octet) și afișați rezultatul ca text (hint: operatorul ^): |
* 4c26e3b44c86c21ef8908970c7af7475c17e834c7c01aa702e77 | * 4c26e3b44c86c21ef8908970c7af7475c17e834c7c01aa702e77 | ||
* 004382c622a6b671d8e5fa15e7c7110de107ec395c6cdf035a56 | * 004382c622a6b671d8e5fa15e7c7110de107ec395c6cdf035a56 |