Szybkie pytanie: Ponieważ int to 2 bajty, a char to 1 bajt, chcę zapisać zmienną typu int w 2 zmiennych znakowych. (jak bit 1 - 8 do pierwszego znaku, bit 9-16 do drugiego znaku). Używanie C jako języka programowania.Store int in 2 chars
Jak mogę to osiągnąć? Czy coś takiego:
int i = 30543;
char c1 = (char) i;
char c2 = (char) (i>>8);
wykonać zadanie?
Nie mogłem znaleźć, czy rzucanie int do char po prostu upuszcza bity 9-16.
Nie można zagwarantować, że 'int' jest dwa bajty, można jednak skorzystać z' 'stdint.h' int16_t' która jest gwarantowana być szeroki 2 bajty . To ciekawe pytanie, ale nie sądzę, że można znaleźć odpowiedź specyficzną dla 'char', ale jeśli się nad tym zastanowić, nie będzie sposobu na przechowywanie więcej niż' CHAR_BIT' bitów w 'char', stąd obsada nie jest potrzebne. –
"int to dwa bajty" rodzi pytanie, jakiego kompilatora używasz? Int jest najczęściej 32-bitowym, czyli 4-bajtowym, w tych dniach, zarówno w środowiskach 32-, jak i 64-bitowych. – hyde
Nie jestem pewien, czy jest to bankomat, ponieważ jest zainstalowany na komputerach uniwersyteckich, ale moi koledzy mówili mi, że to dwa bajty. Równie dobrze można użyć int16_t, aby być w 100% pewni, dzięki! –