28 de maio de 2010

Pegadinha Java II

Os posts marcados como "Pegadinha Java" têm a intenção de testar a sagacidade dos meus alunos iniciantes na Programação em Java. São tópicos curiosos e divertidos, e não têm a intenção de medir o conhecimento na linguagem Java.

A vocês, meus alunos, lembrem-se que a idéia é bater o olho no código e apontar a resposta correta. Naturalmente, trata-se de pegadinhas, ou seja, são trechos de código bastante mal-intencionados... :-)

Nesta segunda questão, vocês devem se lembrar do trecho de código abaixo:

System.out.println("010" + 10)

Todos vão se lembrar que o resultado não vai ser 20 e sim 01010. A explicação é fácil, pois o primeiro fator da soma é um String, logo ele vai converter o segundo fator também para String e concatenar os dois fatores.

Mas e o techo abaixo:

System.out.println(010 + 010)

O primeiro fator é numérico, logo o resultado da soma vai ser...

Muito bem! 16 (!!!)

Por quê?

Àqueles que descobriram a resposta, tenham a gentileza de não estragar a surpresa... :-)

Só me enviem mensagens se tiverem dúvidas, mas não revelem a resposta para os demais, certo?

Um abraço e até a próxima!

4 comentários:

  1. Respostas
    1. Kkkkk... Grande Ely, obrigado pela sua participação!

      Fiquei sabendo que você desvendou a Pegadinha I... Logo, esta segunda você vai acertar também. Pesquise em relação aos sistemas numéricos em java, o quê significa este zero na frente dos algarismos... O "mistério" está por aí... Bons estudos! :)

      Excluir
    2. 010 esta na base 8 (oct)
      logo
      010+010 = 020 (oct) = 16 (dec)

      Excluir
    3. É isso aí, Ricardo, matou a charada!
      Obrigado pela participação, grande abraço,
      Marcone

      Excluir