Wednesday, 25 December 2019

Biased representation binário opções


Representação tendenciosa Se temos números que variam de -8 a 8, podemos remover o sinal adicionando 8 a todos ou números. Os números seriam então 0 a 16. É como mudar a escala (como na conversão de Celsius para Kelvin) para obter apenas valores positivos. Essa representação permite que as operações nos números inclinados sejam iguais aos inteiros não assinados, mas na verdade representa valores positivos e negativos. Este método é chamado por vários nomes - Excesso-K. Também chamado de offset binary ou biased. Usa um valor fixo K como valor de polarização. Um valor é representado pelo número não assinado que é K maior do que o valor pretendido. Assim 0 é representado por K, e menosK é representado pelo padrão de bits de todos os zeros. Isso pode ser visto como uma ligeira modificação do twos-complemento. Que é virtualmente a representação de excesso-2Nminus1 com o bit mais significativo negado. As representações tendenciosas são agora usadas principalmente para o expoente de números de ponto flutuante. O padrão de ponto flutuante IEEE define o campo expoente de um número de precisão simples (32 bits) como um campo de excesso de 127 bits de 8 bits. Exemplos de Representação Preconcebida Exemplos 1: dado 4 bits, valores de polarização por 2 3 (8) VALOR VERDADEIRO a ser representado 3 adicionar o viés 3 8 11 valor não assinado 11 Assim, 3 em 4 bits de polarização-8 representação será 1011 Exemplo 2: Dada uma representação biased-8 como 0110 o que é o valor verdadeiro unsigned 0110 representa decimal 6 subtrair o viés 6 - 8 -2 VALOR VERDADEIRO representado -2Signed Int: BiasExcess Notação No notação excedente, você especifica dois parâmetros: o número de bits, N, eo valor de polarização, K. Em SM e 1C, há apenas um parâmetro: o número de bits. Por exemplo, deixe K 5 (em 3 bits), e você tem excesso de representação 5, que atribui 000 a -5 e faz 111 igual a 2. Na verdade, a representação K em excesso mapeia 0 N para - K e 1 N para - K 2 N - 1. Se você escolher K 2 N - 1. então o bit de sinal é invertido, onde 1 no MSb significa positivo e 0 significa negativo. Com excesso (ou viés) de representação, você não pode fazer a adição sem assinatura hardware de adição int. Você precisa de um circuito especializado para realizar a adição. Este gráfico assume uma representação K em excesso. Número de Valores Base 10 para Excesso Adicione o excesso ao número de base dez. Converta o número de base dez resultante em binário não assinado (UB). Excess to Base 10 Converta o número binário para base dez, usando representação binária não assinada (UB). Subtraia o excesso. É fácil ver que a conversão de e para a representação em excesso são operações inversas. Por que ExcessBias é diferente As outras representações assinadas weve visto: SM, 1C e 2C todos dividir o número de valores negativos e não negativos uniformemente. Em princípio, você pode fazer isso com excesso de representação também. No entanto, uma vez que o excesso de representação K usando N bits tem dois parâmetros, K e N, você pode escolher K para ser o que quiser. Você pode ter mais números positivos do que negativos, não incluir zero, e assim por diante. Como a representação K em excesso usa duas variáveis ​​(K e N), qualquer hardware projetado para realizar adição nessa representação dependerá de K e N. Felizmente, classificar valores em excesso de representação depende somente de N. Como 2C, a representação em excesso tem, Mais, um zero. No entanto, é possível escolher K para que não haja zero (escolha um K adequadamente grande). Ao contrário das outras representações int assinadas, você pode comparar valores na representação de excessos usando a comparação sem assinatura. No entanto, a maioria das pessoas preferem fazer a adição corretamente para a comparação, razão pela qual 2C é preferida a notação excessiva. Excesso de notação não encontrar um uso em representação de ponto flutuante, no entanto, é por isso que estudá-lo. Ao aprender como os números de ponto flutuante são representados em computadores eu vim através do termo valor de polarização que eu não entendo muito bem. O valor de polarização em números de ponto flutuante tem a ver com o negativo e positividade da parte expoente de um número de ponto flutuante. O valor de polarização de um número de ponto flutuante é 127, o que significa que 127 é sempre adicionado à parte expoente de um número de ponto flutuante. Como fazer isso ajuda a determinar se o expoente é negativo ou positivo ou não perguntou 14 de maio de 10 em 15:17 b0lt já explicou como viés funciona. Em uma suposição, talvez você gostaria de saber por que eles usam uma representação viés aqui, mesmo que praticamente todos os computadores modernos usam dois complementam essencialmente em qualquer outro lugar (e até mesmo máquinas que não usam twos complementar, use o complemento ou sinal de magnitude, não viés) . Um dos objetivos dos padrões de ponto flutuante IEEE era que você poderia tratar os bits de um número de ponto flutuante como um inteiro (assinado) do mesmo tamanho e, se os comparasse desse modo, os valores serão classificados na mesma ordem Os números de ponto flutuante que eles representavam. Se você usou uma representação de dois complementos para o expoente, um pequeno número positivo (isto é, com um expoente negativo) pareceria um inteiro muito grande porque o segundo MSB seria definido. Usando uma representação de polarização em vez disso, você não corre para isso - um expoente menor no número de ponto flutuante sempre parece um inteiro menor. FWIW, é também por isso que os números de ponto flutuante são normalmente organizados com o primeiro sinal, em seguida, o expoente e, finalmente, o significand nos bits menos significativos - desta forma, se você visualizar esses bits como um inteiro, o expoente é tratado como mais Significativo do que o significand, então você não começa (por exemplo) 0,9 classificação maior do que 1,0. Respondeu May 14 10 at 15:44 Adicionando mais detalhes às respostas acima. Para representar 0. infinito e NaN (Not-a-Number) em ponto flutuante, o IEEE decidiu usar valores de codificação especiais. Se todos os bits do campo do expoente estiverem definidos como 0, então o número do ponto flutuante é 0.0. Se todos os bits do campo de expoente são definidos como 1 e todos os bits da parte de fração são 0, então o número de ponto flutuante é infinito. Se todos os bits do campo do expoente forem definidos como 1 e todos os bits da parte da fração não forem iguais a 0, então o número do ponto flutuante é NaN. Assim, na precisão única temos 8 bits para representar o campo exponente e existem 2 valores especiais, então basicamente temos 256 - 2 254 valores que podem ser representados no expoente. Assim, podemos efetivamente representar -126 a 127 no expoente, isto é, 254 valores (126 127 1), 1 é adicionado para 0.

No comments:

Post a Comment