Domanda veloce: Poiché int è 2 byte e char è 1 byte, voglio memorizzare una variabile int in 2 variabili char. (come il bit 1 - 8 nel primo carattere, il bit 9-16 nel secondo carattere). Usare C come linguaggio di programmazione.Memorizza int in 2 caratteri
Come posso ottenere quello? Sarà qualcosa del tipo:
int i = 30543;
char c1 = (char) i;
char c2 = (char) (i>>8);
fare il lavoro?
Non riesco a trovare se il lancio di un int in un carattere salterà solo i bit 9-16.
Non è possibile garantire che 'int' è di due byte, tuttavia è possibile utilizzare' int16_t' da 'stdint.h' che è garantito per essere largo 2 byte . È una domanda interessante ma non penso che tu possa trovare una risposta specifica a 'char', ma se ci pensi, non ci sarà modo di memorizzare più di bit' CHAR_BIT' in un 'char', da qui il cast non è necessario –
"int è due byte" solleva la domanda, quale compilatore stai usando? Int è spesso 32 bit, quindi 4 byte, in questi giorni, in ambienti a 32 e 64 bit. – hyde
Non sono sicuro che sia installato sui PC universitari, ma i miei compagni mi hanno detto che sono due byte. Potresti anche usare int16_t, per essere sicuro al 100%, quindi grazie! –