¿Cómo se almacenan los diferentes tipos en la memoria?

Actualmente estoy escribiendo un programa en C que implica tratar con bytes. Cuando se trata de bytes, estoy realmente confundido acerca de las siguientes preguntas.

¿Los caracteres se almacenan en la memoria por sus códigos ascii? Digamos que 'A' tiene el código anscii 65. ¿Entonces está almacenado en la memoria de la misma manera que el entero 65?

Si es así, ¿cómo distingue la máquina un carácter y un número entero?

Si los caracteres se almacenan mediante códigos ascii, un código ascii es un número entero. Un número entero debe ocupar al menos 2 bytes, ¿cómo es que un carácter solo ocupa 1 byte?

El último es sobre enteros en diferentes arquitecturas. En una máquina de 16 bits, si 1 se almacena como 000 ... 0001, en una máquina de 32 bits, ¿se almacena 1 de la misma manera simplemente agregando 0 en la parte delantera?

Respuestas a la pregunta(2)

Su respuesta a la pregunta