Strona główna › Pytania INF.02 › Pytanie 3693
INF.02 · pytanie #3693
Liczbą dziesiętną, która odpowiada liczbie 11110101₍U₂₎, jest
- A11
- B-11
- C-245
- D245
Poprawna odpowiedź: B. -11
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Liczba 11110101₍U₂₎ jest zapisana w kodzie U2, czyli w kodzie uzupełnień do dwóch (ang. two's complement). To najpopularniejszy sposób reprezentacji liczb całkowitych ze znakiem w systemach komputerowych. Pierwszy bit od lewej to bit znaku – jeśli jest równy 1, mamy do czynienia z liczbą ujemną. Tutaj jest właśnie taki przypadek. Żeby odczytać taką liczbę, najpierw zamieniamy wszystkie bity na przeciwne (0 na 1, 1 na 0), a następnie dodajemy 1 do uzyskanego wyniku. W tym przypadku otrzymujemy: zamiana bitów daje 00001010, a po dodaniu 1 wychodzi 00001011, czyli 11 dziesiętnie. Ale ponieważ zaczęliśmy od liczby ujemnej, końcowy wynik to -11. To się często przydaje np. przy analizie rejestrów procesorów albo gdy pracujesz z mikrokontrolerami i musisz prawidłowo obsługiwać liczby ujemne. Swoją drogą, kod U2 pozwala na łatwiejsze operacje arytmetyczne i wykrywanie przepełnień, dlatego jest standardem w większości architektur sprzętowych. Moim zdaniem, dobrze znać ten algorytm, bo to podstawa przy pracy z systemami niskopoziomowymi i programowaniem sterowników. Przy okazji, warto pamiętać, że znak liczby i jej wartość są zakodowane w tej samej sekwencji bitów, co bardzo upraszcza projektowanie układów logicznych.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.