Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α12.4 · Παράδειγμα endianness

Διάλεξη 12, διαφάνεια 42 · Δυσκολία ★★☆ · trace · Κεφάλαια: 12, 13

Τι θα τυπώσει το παρακάτω;

#include <stdio.h>
int main() {
  int x = 42;
  char * bytes = (char*)&x;
  int i;
  for(i = 0; i < sizeof(int) / sizeof(char); i++)
     printf("%02x\n", bytes[i]);
  return 0;
}

Υπόδειξη

Γράψτε το 42 σε δεκαεξαδικό ως ακέραιο 4 bytes. Ο δείκτης bytes διατρέχει τη μνήμη του x ένα byte τη φορά, από τη χαμηλότερη διεύθυνση· η απάντηση εξαρτάται από το αν ο υπολογιστής σας είναι little ή big endian (οι x86 και οι περισσότεροι ARM είναι little endian).

Αριθμός στον οδηγό: Α12.4 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec12-endianness · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec12-endianness.html · Markdown (GitHub)