stachu napisał(a):
Np mamy typ który ma 4 bajty i rzutujemy do typu 1 bajtowego
Ale w takim przypadku same bity wewnątrz bajtów to już nie mają takiego znaczenia. Rzutowanie powoduje hmmm ograniczenie albo poszerzenie możliwych wartości rzutowanego obiektu
jeśli masz np zmienną 4 bajtową (uint32_t) gdzie mamy bajty:
D C B Ai rzutujesz ją do typu np uint8_t to oznacza tylko jedno - pod uwagę weźmiesz jedynie najmłodszy bajt A
hmmm no niech będzie nasza zmienna 32 bitowa ma np wartość: 0xFF55AA33
Cytuj:
D C B A ----> rzutowanie do uint8_t ----> A (0x33) ------> po rzutowaniu zostanie nam tylko to co na czerwono 0xFF55AA33
D C B A ----> rzutowanie do uint16_t ----> B A (0xAA33) ------> po rzutowaniu zostanie nam tylko to co na czerwono 0xFF55AA33
a teraz rzutowanie w drugą stronę np typu uint8_t na uint32_t. Załóżmy że nasza zmienna 8 bitowa ma wartość 0xAF
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i zrobimy rzutowanie
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to wynikiem tego będzie wartość 32 bitowa o taka:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli podobnie jak wyżej. Tyle że w drugą stronę.
Cytuj:
A ------> rzutowanie do uint32_t -----> D C B A -----> tyle że starsze dodane bajty D C B będą miały wartość = 0
nie wiem czy o to chodziło ?
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]