Informatică, întrebare adresată de Andreea14123, 8 ani în urmă

Se citeste de la intrarea standard o valoare intreaga. Sa se afiseze in format zecimal valoarea fiecarui octet al intregului citit. În limbajul de programare C.

Răspunsuri la întrebare

Răspuns de VxF
2

Răspuns:

#include <stdio.h>

void main()

{

   unsigned long long int numar;

   printf("Număr: ");

   scanf("%llu", &numar);

   printf("Reprezentare pe octeți:");

   while (numar) {

       printf(" %d", (int) numar % 256);

       numar /= 256;

   }

   printf("\n");

}

Verificare:

bash-5.2$ cc -o reprezentare_octeti reprezentare_octeti.c

bash-5.2$ ./reprezentare_octeti

Număr: 1234567890

Reprezentare pe octeți: 210 2 150 73

bash-5.2$ cat reprezentare_octeti_verificare.c

#include <stdio.h>

#include <unistd.h>

void main()

{

   unsigned long long int numar;

   scanf("%llu", &numar);

   FILE *iesire = fdopen(dup(fileno(stdout)), "wb");

   fwrite(&numar, sizeof numar, 1, iesire);

   fclose(iesire);

}

bash-5.2$ cc -o reprezentare_octeti_verificare reprezentare_octeti_verificare.c

bash-5.2$ ./reprezentare_octeti_verificare <<< 1234567890 | od -tu1

0000000 210   2 150  73   0   0   0   0

0000010


Andreea14123: Multumesc mult! As avea o intrebare. "%llu" cand se foloseste? Cand se refera la biti?
VxF: Nu, pentru unsigned long long. În acest exerciţiu nu avem treabă la nivel de biţi.
Andreea14123: Unsigned long long cand se foloseste? Am citit ca se obtine dimensiune exactă, în octeți (8 biți pe platformele tipice) cu expresia sizeof(unsigned long long).
Alte întrebări interesante