Advertisement
KvArt

Ispis binarne maske od decimalnog broja

Jul 12th, 2022
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. /*• Sastaviti program na programskom jeziku C koji
  2. učitava pozitivan decimalan ceo broj u obliku niza
  3. znakova i ispisuje njegovu binarnu predstavu.
  4. Pretpostaviti da uneti znakovni niz nije duži od 10
  5. karaktera i da se za interno predstavljanje celih
  6. brojeva koristi 16 bita.
  7. • Standardne bibliotečke funkcije za ispis, poput
  8. printf, ne podržavaju ispis bitova celog broja
  9. – rešenje je u korišćenju bitskih operatora i odgovarajućih maski za
  10. ekstrakciju pojedinačnih bitova
  11.  
  12. • Rešenje
  13. – prilikom čitanja stringa se koristi konverzija %s
  14. – za konverziju stringa u ceo broj se koristi bibliotečka funkcija atoi() koja
  15. vraća vrednost celog broja ili 0 ukoliko konverzija nije uspela*/
  16.  
  17. #include <stdio.h>
  18. #include <string.h>
  19. #include <stdlib.h>
  20. void main() {
  21. char dec[11];
  22. short int bin, i;
  23. printf("Unesite decimalan broj: ");
  24. /* ucitava string sa standardnog ulaza (dec=&dec[0]) */
  25. scanf("%s",dec);
  26. if (strlen(dec) && (bin=atoi(dec))) {
  27. printf("Binarni broj: ");
  28. i=-1;
  29. while (++i<16) {
  30. putchar((bin & 0x8000) ? '1' : '0');
  31. bin <<= 1 ;
  32. if (i%4 == 3) putchar(' ');
  33. }
  34. printf("\n");
  35. }
  36. else
  37. printf("Neispravan broj ili nula\n");
  38. }
  39.  
  40. /*• Ispis binarne predstave celog broja:
  41. – u svakoj iteraciji petlje se ispiše jedan bit broja, počev od bita najveće težine
  42. bit15 bit14 ... bit2 bit1 bit0
  43. – koristi se maska 0x8000 za izdvajanje bita najveće težine, a zatim se broj
  44. pomera za jedno mesto ulevo */
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement