0x dla 8 bitów, co jest używane dla 7 bitów? [Zamknięte]

-4

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.

Fajny oszczep
źródło
1
Bity są binarne. 0x oznacza hex, który nie jest binarny. Po prostu ładnie odwzorowuje, ponieważ jest potęgą dwóch.
Daniel B
O tak, a pojedyncza cyfra szesnastkowa odwzorowuje na 4 bity, a nie na 8. Więc zupełnie nie rozumiem tego, co próbujesz osiągnąć.
Daniel B
2
Mylisz liczbę bitów z radix (aka base). „Piszę dokumentację techniczną ...” - Następnie należy użyć odpowiedniej interpunkcji dla „7-bitowego kodowania” . Nie jest to „kodowanie 7” ani „kodowanie bitowe”, ale „kodowanie 7-bitowe” (tzn. „7” i „bit” idą razem, więc jest dzielony).
trociny
Powinieneś używać notacji szesnastkowej i wyraźnie zaznaczyć, że wartości są kodowane 7-bitowo, aby ułatwić czytanie dokumentacji. Szesnastkowy istnieje dla nas, ludzi, komputer nie dba o to. Komputer
zapisze

Odpowiedzi:

2

Nie masz racji. Używamy 0xdo wskazywania liczb wyrażonych w systemie szesnastkowym, podstawa 16. Używanie 0xprzed 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.

David Schwartz
źródło
2

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.

Tonny
źródło