Questões Comentadas - Programação
(? Tecnico Info - UFPA 2008)40 Considere a seguinte declaração na linguagem C, rodando sobre uma arquitetura na qual o tamanho do inteiro é 4 bytes (sizeof(int)==4).
#include
int main()
{
union {
int como_int;
char como_char[4];
} ambos;
ambos.como_int = 0x12345678;
Na arquitetura da CPU com uma representação de
palavras no padrão "little endian", o valor do caractere da
posição zero (ambos.como_char[0]) em hexadecimal é
(A) 0x78.
(B) 0x12.
(C) 0x34.
(D) 0x56.
(E) 0x00.
Resolução - Clique abaixo>
A palavra reservada union cria uma área de memória compartilhada entre as variáveis declaradas. Assim sendo, tanto o inteiro como o vetor de caracteres ocupam o mesmo espaço de memória (um char tem 1 byte).
Como a máquina tem palavra "little endian", o bit menos significativo fica armazenado no endereço mais baixo. Assim, a resposta correta é a letra A.
#include
int main()
{
union {
int como_int;
char como_char[4];
} ambos;
ambos.como_int = 0x12345678;
Na arquitetura da CPU com uma representação de
palavras no padrão "little endian", o valor do caractere da
posição zero (ambos.como_char[0]) em hexadecimal é
(A) 0x78.
(B) 0x12.
(C) 0x34.
(D) 0x56.
(E) 0x00.
Resolução - Clique abaixo>
A palavra reservada union cria uma área de memória compartilhada entre as variáveis declaradas. Assim sendo, tanto o inteiro como o vetor de caracteres ocupam o mesmo espaço de memória (um char tem 1 byte).
Como a máquina tem palavra "little endian", o bit menos significativo fica armazenado no endereço mais baixo. Assim, a resposta correta é a letra A.
Comentários