Ir ao conteúdo

Maior número inteiro com sinal em um registrador de 16 bits


terabyte5000

Posts recomendados

Postado

Olá a todos,

Em um concurso perguntou-se

Seja um registrador de 16 bits. O maior numero inteiro com sinal que pode ser guardado nesse resgistrador é:

a)(2^16-1)-1

B)(2^16)-1

c) (2^16-1)

d) 2^16

e) (2^16)-2

Qual a resposta?

eu marquei letra d

no gabarito ta como a

Grato

Postado

Eu acredito que a resposta A deveria ser 2^(16-1) - 1 (que é diferente de (2^16-1)-1 ).

Pois, se você tem 16 registradores, e um deles será usado pra guardar o sinal, então você tem apenas 15 pros números.

O maior número seria o 2^15, porém como o zero conta, devemos subtrair 1 (o zero seria o primeiro, o número 1 seria o segundo, etc).

Postado
Olá a todos,

Em um concurso perguntou-se

Seja um registrador de 16 bits. O maior numero inteiro com sinal que pode ser guardado nesse resgistrador é:

a)(2^16-1)-1

B)(2^16)-1

c) (2^16-1)

d) 2^16

e) (2^16)-2

Qual a resposta?

eu marquei letra d

no gabarito ta como a

Grato

Usando as codificações mais comuns, resposta A.

Postado
Uau, foi realmente uma resolução impressionante :)

Acho que ficou bem claro que o nosso colega não entende muito de codificação de binários com sinal... Sua resposta é correta dentro do normal, mas sei lá...

Falando sério, usando números sem sinal, um bit equivale a dois números, 2 equivalem 4, e N bits equivalem a 2^N números. Um desses números é o zero, então o maior número representado é o (2^N)-1. O problema é que é necessária uma representação para números com sinal também...

Qual é a forma mais óbvia de representar um sinal? Um bit extra, como disse o Lotuss. Esse bit, na maioria dos casos, é 1 em negativos, 0 em positivos. No entanto, para garantir a facilidade de trabalho com esses números, é necessário que se possa trabalhar com eles de forma fácil. Por isso, todas as codificações comuns usam números negativos da mesma forma que com inteiros sem sinal, apenas com esse 0 extra na frente.

O que isso significa? Que você tem, para números positivos, os 16 bits, menos um de sinal para representar o módulo do número. O zero na frente já está ocupado, então são 15 bits, que dão (2^15)-1=32677 de número máximo positivo.

Para números negativos, a coisa é diferente. Uma das codificações usa o módulo do número para os 15 bits depois do bit de sinal, e permite até -32677 também. Mas não é nada comum. Outra simplesmente nega o módulo do número (complemento de um), e também vai até -32677. A mais usada de longe é a complemento de dois, que nega o módulo do número e acrescenta um a ele (assim acabando com a existência do zero negativo). Essa vai até -32678.

Existem outras codificações. Mas não são nada comuns.

OBS: Você vai notar que minha resposta é muito parecida com a sua, mas é que você se confundiu um pouco na escrita com registrador e bits no meio, e também não explicou porque você poderia considerar o resto do número um módulo. Às vezes isso atrapalha... por outro lado, eu não sei escrever. Isso sempre atrapalha.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...