Piszę dokumentację techniczną i opisuję format 7-bitowego trybu adresowania I2c. Jest to również związane z 7-bitowym kodowaniem ASCII, ale jest to uwaga dodatkowa.
I2c używa 7 bitów (lub 10 bitów nie omówionych tutaj) do adresowania urządzenia podrzędnego. Następujący po 7 bitach adres jest kolejnym bitem, który informuje slave'a, aby czytał lub zapisywał.
Osiem bitów jest przesyłanych podczas wysyłania adresu, ale w rzeczywistości jest to 7 bitów plus bit kierunku (R / w #).
Moje pytanie: jeśli 0x jest używany do opisania bajtu szesnastkowego o podstawie 16, ośmiobitowy, to co jest używany do opisania bajtu o podstawie 15 (uh? Być może słowo bajt jest tutaj również niepoprawne.
Wiem, że 0x służy także do opisywania 16-bitowych słów, ale logicznie są to tak naprawdę dwa 8-bitowe bajty, więc 0x wydaje się OK.
Uwaga: słowo quindecimal otrzymałem stąd http://mathforum.org/library/drmath/view/60405.html
Znak.
źródło
Odpowiedzi:
Nie masz racji. Używamy
0x
do wskazywania liczb wyrażonych w systemie szesnastkowym, podstawa 16. Używanie0x
przed liczbami o dowolnej długości jest w porządku , o ile wyrażasz je w podstawie 16.Jeśli widzisz „0x1”, to tak jak widzenie 1. Może to być jeden bit. To może być bajt. Może to być dowolna długość. „0x” nie sugeruje żadnej określonej długości.
źródło
Base15 nie oznacza 7-bitowego bajtu. Pojęcia nie mają żadnego związku ...
7-bitowy bajt jest właśnie taki. Bajt, w którym nie jest używany najbardziej znaczący bit.
Nie ma nic złego w używaniu notacji szesnastkowej z prefiksem 0x do wyświetlania wartości przechowywanych w takich 7-bitowych bajtach, o ile wyraźnie wyjaśnisz, że tylko 7 bitów jest poprawnych. (Innymi słowy: 0x0 * do 0x7 *, cyfry 0x8 * i wyższe nie są używane).
Według mojej wiedzy nie ma na to specjalnego zapisu.
Programuję od ponad 30 lat iz powrotem w ciągu dnia te 7-bitowe systemy były o wiele bardziej powszechne niż obecnie. Gdyby istniała specjalna notacja, napotkałbym ją w pewnym momencie, ale nigdy tak nie było.
źródło