Como os diferentes tipos são armazenados na memória

Atualmente, estou escrevendo um programa em C que envolve lidar com bytes. Quando se trata de bytes, estou realmente confuso sobre as seguintes perguntas.

Os caracteres são armazenados na memória por seus códigos ascii? Digamos que 'A' tenha o código anscii 65. Portanto, ele é armazenado na memória da mesma maneira que o número inteiro 65?

Se sim, como a máquina distingue um caractere e um número inteiro?

Se os caracteres forem armazenados por códigos ASCII, um código ASCII será um número inteiro. Um número inteiro deve ocupar pelo menos 2 bytes. Por que um caractere ocupa apenas 1 byte?

O último é sobre números inteiros em diferentes arquiteturas. Em uma máquina de 16 bits, se 1 é armazenado como 000 ... 0001, em uma máquina de 32 bits, 1 ainda é armazenado da mesma maneira, apenas adicionando 0 na frente?

questionAnswers(2)

yourAnswerToTheQuestion