In che modo il valore della variabile intera è memorizzato in una memoria per byte / bit?

-4

Nel programma C che sto facendo sotto roba

int x  = 4;

Supponiamo che il numero intero abbia 2 byte in questo caso. Quindi la mia domanda qui è la variabile x conterrà due byte che significano 16 bit. Quindi qui come il valore 4 sarà memorizzato in 16 bit?

Fino ad ora ho capito che il valore 4 sarà convertito in esadecimale, quindi risulta [0x0004] e questo valore esadecimale è memorizzato nelle caselle a 16 bit?

Non so se la mia comprensione è corretta ma ho bisogno di come il valore di x è mappato a 16 bit box? Sarebbe bene se qualcuno fornisse una rappresentazione strutturale / grafica sulla memorizzazione dei valori in memoria.

    
posta Abdulvakaf K 26.11.2018 - 11:29
fonte

2 risposte

2

Se hai un sistema operativo a 16 bit, ci saranno 2 byte uno accanto all'altro in memoria. Uno con 00000100 in e l'altro con 00000000. Se è memorizzato come 00000000-00000100 o 00000100-00000000 dipende dal fatto che il sistema operativo sia little-endian o big-endian. Vedi: link

    
risposta data 26.11.2018 - 18:27
fonte
1

La rappresentazione esatta non è specificata nello standard C, (in parte perché int potrebbe essere 16, 32 o 64 bit)

Una rappresentazione tipica è complemento a 2 , perché consente allo stesso hardware di eseguire aritmetici sia con segno che senza firma.

Il decimale 4 è binario 0000000000000100. Non c'è alcuna "conversione", tutti i valori sono stringhe di bit.

    
risposta data 26.11.2018 - 11:44
fonte

Leggi altre domande sui tag