Problem ze zrozumieniem uzyskanej odpowiedzi

0

Dzien dobry! Jestem początkujący. Program wypisuje 61, ale nie wiem dokładnie skąd się to wzięło. Proszę o pomoc :)
printf("%d", 021|054);
a)61 b)41 c)33 d) 75

2

A wiesz co oznacza |?

0

Według tego co znalazłem w Internecie "|" oznacza bitową operację sumy. Nie wiem gdzie robię błąd w obliczeniach, bo wychodzi mi 75.

0
  1. Zapisz liczby binarnie
  2. Zsumuj pisemnie
  3. Zapisz dziesiętnie wynik

Edit: mea culpa, zapomniałem o tym feature z zapisywaniem ósemkowo...

4

021 i 054 są tutaj traktowane jako liczby systemu ósemkowego.

2
Filip Franciszek Maścibroda z Grzymysławic napisał(a):

Dzien dobry! Jestem początkujący. Program wypisuje 61, ale nie wiem dokładnie skąd się to wzięło. Proszę o pomoc :)

printf("%d", 021|054);
a)61 b)41 c)33 d) 75

Liczby zapisane 0x sa traktowane jako zapis szesnastkowy, a z 0 na poczatku jako osemkowy.

4
021|054
----
2|5 = 7
1|4 = 5
=>
021|054 = 075

// oct to dec:
7 * 8 + 5 = 56 + 5 = 61

Swoją drogą zadania tego typu niczego sensownego nie uczą

3

@Filip Franciszek Maścibroda z Grzymysławic: a jak doszedłeś do swojego wyniku, 75? Bo nijak to interpretując nie mogę się domyślić. Chyba, że po prostu dodałeś 21+54=75?

1 użytkowników online, w tym zalogowanych: 0, gości: 1