bit znaku jest najbardziej znaczący bit na każdej maszynie uzupełnienie do dwóch (jak x86), a więc będzie w ostatnim bajcie w formacie little-endian
Just Cause I nie chciał być nie w tym sztuki ASCII ... :)
+---------------------------------------+---------------------------------------+
| first byte | second byte |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
^--- lsb msb/sign bit -----^
Bity są zasadniczo reprezentowane „wstecz” od tego, jak większość ludzi myśli o nich, dlatego też bajt jest ostatnim. Ale wszystko jest spójne; "bit 15" przychodzi po "bit 0", tak jak adresy powinny działać, i nadal jest najbardziej znaczącym bitem najbardziej znaczącego bajtu tego słowa. Nie musisz nic robić, ponieważ sprzęt mówi w kategoriach bajtów na wszystkich, ale najniższych poziomach - więc kiedy czytasz bajt, wygląda dokładnie tak, jak byś tego oczekiwał. Po prostu spójrz na najbardziej znaczącą część twojego słowa (lub ostatni bajt, jeśli czytasz bajt na raz), i masz swój znak.
Należy jednak zauważyć, że dopełnienie dwóch nie określa dokładnie danego bitu jako "bitu znaku". To bardzo wygodny efekt uboczny tego, jak liczby są reprezentowane. W przypadku liczb 16-bitowych -x jest równe 65536-x zamiast 32768 + x (co miałoby miejsce, gdyby bit wyższego rzędu był wyłącznie znakiem).
Co do twojego zdjęcia, to zależy od tego, jak narysujesz bity w bajcie. : P Jeśli narysujesz je jako big-endian (najpierw high-endian), wtedy będzie to "i". Jeśli przyjmiesz małą endianię tego wszystkiego, wtedy "p". Tak czy inaczej, będzie to najwyższy bit ostatniego bajtu. – cHao