Źródło: Arkusze CKE
Po wykonaniu poniższego kodu na konsoli zostanie wyświetlona liczba:
int a = 0x73;
cout << a;
Warianty odpowiedzi
-
A
0
-
B
73
-
C
115
-
D
108
Wyjaśnienie
Przedrostek 0x wyraźnie wskazuje, że kompilator ma do czynienia z liczbą zapisaną w systemie szesnastkowym (heksadecymalnym).
Sama wartość 73 w systemie szesnastkowym przelicza się na system dziesiętny poprzez pomnożenie poszczególnych cyfr przez kolejne potęgi liczby 16. Mamy więc 7 razy 16 do potęgi pierwszej plus 3 razy 16 do potęgi zerowej, co daje 112 plus 3, czyli 115.
W języku C++ domyślne zachowanie strumienia wyjściowego cout polega na wyświetlaniu liczb w formacie dziesiętnym. Dlatego mimo że zmiennej przypisano wartość szesnastkową, na konsoli pojawi się ostatecznie liczba 115.