Witam
Zaciekawiłem się przedstawianiem liczb w komputerze. Chciałem sprawdzić czy faktycznie jest tak kod U2. Wszystko się zgadza, ale jeśli zrobiłem sobie funkcję drukującą wszystkie bity każdej liczby to zobaczyłem, że MSB liczby ujemnej (a więc ten który jest odpowiedzialny za znak) równa się -1.
Wygląda to mniej więcej tak:
liczba 6: 00000000000000000000000000000110 (32bit na typ int)
liczba -6: -11111111111111111111111111111001
Sprawdziłem: znak minus ma ten pierwszy znak z lewej. Jak to możliwe skoro niby są przetrzymywane znaki w formie binarnej? Zawsze tak jest, czy też tylko na niektórych kompilatorach?