Representação de ponto flutuante de 8 bits

Estou estudando a representação de números fracionários como valores de ponto flutuante. Será uma representação de 8 bits. Em algum lugar no texto, é dito que:

representação de ponto flutuante de 8 bits

“Usamos o primeiro bit para representar o sinal (1 para negativo, 0 para positivo), os próximos quatro bits para a soma de 7 e o expoente real (adicionamos 7 para permitir os expoentes negativos), e os últimos três bits para a “parte fracionária da mantissa”

Agora a questão é: Por que “7” -e não outro valor- deve ser adicionado ao expoente real?

Comentários

  • Bem-vindo ao CS.SE! O texto sugere o porquê, entre parênteses. A propósito, se você não ' não entende a explicação em um texto, ' é frequentemente útil pesquisar por uma explicação diferente do assunto . Existem muitos recursos em ponto flutuante.
  • Então, por que 7 deve ser adicionado?
  • Se você ' entendeu a resposta à sua primeira pergunta, incentivo você a editar sua postagem para mostrar o que você entende.

Resposta

Com 4 bits você pode representar 16 valores diferentes: 0,1, …, 15. Se você quiser permitir expoentes negativos, faz sentido considerar (aproximadamente) metade dos valores possíveis para significar um expoente negativo. Ao adicionar 7 ao expoente, você mapeia os valores -7, -6, …, 0,1, …, 8 para o intervalo representável. Você também pode pesquisar complemento de dois “s .

Comentários

  • Portanto, adicionar 7, mapas -7, -6, …, – 1 aos seus valores positivos correspondentes e adicionar um valor superior a 7 resulta em um valor fora da faixa que é incorreto. Pelo mesmo motivo, adicionar menos de 7 ao expoente não ' corrige o problema. Obrigado, ' consegui o que estava procurando.
  • Adicionar números diferentes muda os expoentes negativos e positivos que você suporta. É ' uma decisão de design. Talvez apenas suportar -1 seja suficiente para sua aplicação.
  • Sim , você está certo. Esta é uma decisão de design que o instrutor implementou por meio do tutorial e não ' uma restrição estrita.
  • A decisão de usar um deslocamento em vez de 2 ' s complemento IIRC era manter o inverso do menor valor menor do que o maior va lue, ou seja, para evitar transbordamentos. Em outras palavras, foi escolhido cuidadosamente.
  • @KWillets: O deslocamento também permite que o zero seja representado como zeros e permite o uso de comparações inteiras para comparar números de ponto flutuante (excluindo o bit de sinal)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *