Convertendo Ponto Flutuante pra Binário + IEEE-754

Sdílet
Vložit
  • čas přidán 7. 12. 2015
  • Rápido tutorial de conversão de um número decimal em ponto flutuante pra um número binário, seguido de uma conversão pro padrão IEEE-754.

Komentáře • 38

  • @isabelafreitascardoso5016
    @isabelafreitascardoso5016 Před 5 měsíci +1

    EU TE AMO FOI O ÚNICO QUE EXPLICOU DIREITO SALVOU DEMAIS

  • @1ronny65
    @1ronny65 Před 6 lety +17

    Tenho prova amanhã e n tava conseguindo entender essa matéria. Consegui aprender no seu vídeo simples de 3 minutos. Mt obg mano

  • @astrocarol3226
    @astrocarol3226 Před 7 lety +1

    Muito bom o vídeo, consegui entender finalmente o ponto flutuante...

  • @ruancastro5973
    @ruancastro5973 Před 7 lety +2

    Ótimo vídeo , simples e direto

  • @dragoo6128
    @dragoo6128 Před 4 lety +1

    Muito Obrigado pelo video!!!

  • @flaviorn2005
    @flaviorn2005 Před 8 lety +4

    Parabéns. estava precisando de uma aula dessa em português.

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 8 lety +1

      +flaviorn2005 Obrigado! Que bom que ajudou!

    • @flaviorn2005
      @flaviorn2005 Před 8 lety

      +Carlos Eduardo Marciano amigo vc teria como me ajudar em uma dúvida? eu nao consigo entender a calcular o ulp.

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 8 lety

      +flaviorn2005 Infelizmente não vou saber te ajudar com isso =(
      docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#689
      Talvez isso te ajude? Realmente não sei

  • @mb13fera
    @mb13fera Před 7 lety +1

    cara, clareou muita coisa para mim

  • @MrClint
    @MrClint Před 7 lety +1

    Simples e rádido. Vlw

  • @borck_leo
    @borck_leo Před 3 lety +1

    me salvou demais mano

  • @daniellopesrezer3935
    @daniellopesrezer3935 Před 4 lety +1

    ÓTIMO

  • @AFF1241
    @AFF1241 Před 7 lety +1

    Valeuuu!

  • @josejunior032
    @josejunior032 Před 8 lety +3

    +Carlos Eduardo Marciano, poderia dar um exemplo com números de ponto flutuante negativos no padrão IEEE-754 ? Para o vídeo ficar perfeito só faltou esse datalhe, valeu pela ajuda.

  • @erickmoroconche9288
    @erickmoroconche9288 Před 5 lety

    Ótimo vídeo, me ajudou pacas, mas cara(me corrija se eu estiver errado) aos 2:31 o "2" não seria elevado à 10 ao invés de 1? Aí com o 127 se tornando 137?

  • @pauloguilherme3775
    @pauloguilherme3775 Před 4 lety +2

    Heróis que não usam capa

  • @1000grausantiago
    @1000grausantiago Před 5 lety +4

    cara, na mantissa quando vc termina de escrever o numero da notação cientifica, os bits restante são preenchidos apenas por zeros, não?

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 4 lety +3

      Quando o número pode ser representado de maneira exata, sim, o restante da mantissa é preenchido por zero. No entanto, o 2.3 do exemplo possui uma dízima periódica na mantissa. Logo, esta dízima é repetida infinitas vezes, até lotar os bits disponíveis para ela. O computador, então, não guarda exatamente 2.3, mas sim 2.2999999523162841796875

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 4 lety +3

      Vamos por partes:
      VALOR DA MANTISSA:
      A mantissa do exemplo é 001001...
      Em decimal, isto é 0x(1/2) + 0x(1/4) + 1x(1/8) + 0x(1/16) + 0x(1/32) + 1x(1/64) + ...
      Esta soma infinita dá em torno de 1.14999, e a precisão depende de onde você irá parar de somar. Em float, você para em 23 termos/bits. Em double, são 53, garantindo mais precisão (porém usando mais memória).
      MULTIPLICANDO PELO EXPOENTE:
      Além disso, neste exemplo, o expoente do IEEE-754 é igual a 1. Logo, multiplicamos 1.14999 por 2^1, e o computador obtém uma boa aproximação para 2.3. Não há nenhuma maneira de guardar o número exato pelo padrão IEEE-754, pois é impossível achar uma combinação de 0s e 1s pra aquela soma infinita ali tal que o valor seja precisamente 2,3. Se existisse, aí sim o restante da mantissa seria preechida por zero.

    • @vanegtk
      @vanegtk Před 4 lety

      @@carloseduardomarciano1395 mano, explicou muito bem. Obrigado ^^

  • @and4vas
    @and4vas Před 5 lety +1

    Como converter o zero pra IEEE 754?

  • @ruancastro5973
    @ruancastro5973 Před 7 lety

    você nao deveria " dar shifts para direita " e no caso uniria a parte inteira com a decimal ( passando a virgula para direita até o fim ) ? pq no caso , você não usou a parte inteira na mantissa , só a decimal

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 7 lety

      Por esse método do vídeo, o correto é usar apenas a parte decimal mesmo pra realizar aqueles cálculos de x2 e, depois, uni-la diretamente à parte inteira e ficar dando shifts até o número binário ficar normalizado.

  • @poveda01
    @poveda01 Před 6 lety +2

    isso é usado na computação?

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 6 lety +1

      Sim! Essa é a maneira como a maioria dos computadores guarda números como 3,15 ou qualquer outro decimal, ao qual chamamos de "tipo float". Há uma maneira de representar números com ainda mais casas decimais, cuja ideia é exatamente essa do float só que com mais bits (64 ao invés dos 32).

  • @matheushenrique_data_engineer

    O valor sempre será multiplicado por 2, e se sim pq?

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 4 lety

      Na hora de calcular a mantissa? Isto é apenas um macete para descobri-la de maneira rápida e eficiente

  • @VampireOfNight69
    @VampireOfNight69 Před 7 lety +1

    Se o numero nao tiver nenhum expoente como devo proceder ?

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 7 lety +2

      Oi André! Você diz no caso de converter 1,25 por exemplo? Em casos assim, o número já estará normalizado e portanto o expoente é 0. Quando vamos escrever o expoente, ficamos com 0+127=127. Portanto, basta colocar 127 em binário no campo do expoente. O 1,25 por exemplo fica:
      0 01111111 01000000000000000000000

    • @VampireOfNight69
      @VampireOfNight69 Před 7 lety +2

      essa era exatamente minha duvida, mas por que a mantissa ficou "01000000000000000000000" neste exemplo??

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 7 lety +2

      Basta seguir o procedimento mostrado no vídeo. A mantissa em decimal é 0,25, aí você fica multiplicando por dois e pegando as mantissas subsequentes:
      0,25 x2 -> 0,5 -> Coloca um 0
      0,5 x2 -> 1,0 -> Coloca um 1
      0,0 x2 -> 0,0 -> Coloca um 0
      E isso vai repetir infinitamente, formando a mantissa em binário

    • @VampireOfNight69
      @VampireOfNight69 Před 7 lety

      Mas eo 1 que esta a frente do ,25 não seria seria 1 bit? então não ficaria 10100000000000000000000 ?

  • @christophermartins6268
    @christophermartins6268 Před 5 lety +1

    O repeating não seria 0011?

    • @carloseduardomarciano1395
      @carloseduardomarciano1395  Před 5 lety +1

      Não tem problema pensar que a parte que não repete é 01 e a parte que repete é 0011. O resultado final da mantissa ficaria o mesmo (0100110011...)
      Porém, caso vc continue montando a tabela a partir de onde eu parei, vc verá que a repetição começa a partir do primeiro 1 e, portanto, a repetição é 1001. É uma questão de perceptiva: o resultado é o mesmo.

  • @guilhermenobre4412
    @guilhermenobre4412 Před 8 měsíci

    meu heroi não usa capa!!!!!