Pular para o conteúdo principal

Por que (byte) 157 = -99? Parte 1 de 3

A motivação para escrever este artigo foi responder a seguinte pergunta:

Por que (byte) 157 = -99?

Porém, para entender o motivo pelo qual a conversão 157 para o tipo byte resulta em -99 (noventa e nove negativo), antes precisamos entender três pontos:
Inicialmente estes três pontos seriam abordados em um mesmo post, como ele cresceu demais o dividi em três partes, cada uma tratando de um dos pontos apresentados, e começando pelo primeiro:

Conversão entre as bases binária e decimal

Para converter um número decimal para binário, realizamos sucessivas divisões por 2 (base) até que o resultado da divisão seja 0 (zero) e utilizamos os restos para compor o binário. O resto da primeira divisão representa o dígito de menor significância e o resto da última divisão representa o dígito de maior significância, conforme exemplo:

157/2 = 78 resto 1 // posição 0
78/2 = 39 resto 0 // posição 1
39/2 = 19 resto 1 // posição 2
19/2 = 9 resto 1 // posição 3
9/2 = 4 resto 1 // posição 4
4/2 = 2 resto 0 // posição 5
2/2 = 1 resto 0 // posição 6
1/2 = 0 resto 1 // posição 7


Então, 157 em decimal é equivalente a 1001 1101 em binário

Para realizar a conversão inversa, ou seja, de decimal para binário, deve ser realizada a soma do resultado da multiplicação do dígito por 2 (base) elevado a posição do dígito. Vamos exemplificar convertendo o número 1001 1101 em decimal.

1 x 27 = 128
0 x 26 = 0
0 x 25 = 0
1 x 24 = 16
1 x 23 = 8
1 x 22 = 4
0 x 21 = 0
1 x 20 = 1
128 + 0 + 0 + 16 + 8 + 4 + 0 + 1 = 157


Exercite a conversão, realize o cálculo da representação na base 2 (binária) de outros valores, como: 4, 63 e 1024. Realize ainda, a conversão dos valores binários: 1000 e 1111 para decimal e observe os resultados obtidos.

Em breve postarei a próxima parte do artigo.

Até mais!

Marcelo de Castro
http://blog.castro.eti.br
http://twitter.com/mcastroinfo
http://www.globalcode.com.br/instrutores/MarceloCastro

Comentários

Unknown disse…
Ansioso pela parte 3.

Postagens mais visitadas deste blog

10 reasons why we love JSF

1. One-slide technology: it's so simple that I can explain basic JSF with one slide. 2. Easy to extend: components, listeners, render kit, Events, Controller, etc. 3. Real-world adoption: JBoss, Exadel, Oracle, IBM, ... 4. Architecture model: you can choose between more than 100 different architecture. 5. Open-mind community: using JSF you are going to meet very interesting people. 6. We are using JSF the last 5 years and we found very good market for JSF in Brazil 7. Progress: look to JSf 1.1 to JSF 1.2, JSF 1.2 to JSF 2.0. People are working really hard! 8. Many professionals now available 9. It's a standard. It's JCP. Before complain, report and help! 10. Ed Burns, spec leader, is an old Globalcode community friend! EXTRA: My wife is specialist in JSF. She's my F1 for JSF :) Nice job JSF community! -Vinicius Senger

Transmissão do minicurso Google App Engine

Os minicursos gratuitos realizados através da iniciativa Open4Education da Globalcode têm sido transmitidos ao vivo em forma de webcast e eu tenho acompanhado pessoalmente muitos deles, conversado com os alunos no chat, observando a qualidade e as limitações das transmissões. Sem dúvida o aproveitamento presencial é muito maior, principalmente pelo networking e pelo foco dado ao conteúdo. Mas, para aqueles que não estão em São Paulo o custo benefício é sensacional. Mesmo perdendo um pouco nas transmissões, é muito melhor poder assistir os minicursos à distância. Com o sucesso das transmissões do Profissão Java e do The Developer's Conference 2010 queremos melhorar e atingir um público ainda maior, e é por isto, que iremos fazer a primeira transmissão ao vivo em parceria com a WTV Streaming hoje! Os principais benefícios desta parceria são: Transmissão do vídeo e não apenas do conteúdo que está sendo projetado Captação e edição do conteúdo, para posterior disponibilizaç...

Brasil e a força de trabalho: Futuro incerto

Mais de 70 mil brasileiros estariam empregados se tivessem formação em TI (...) Apesar do bom salário, este profissional tem se tornado artigo raro no Brasil, o que explica as vagas neste setor estarem entre as dez mais difíceis de serem preenchidas (...) MDIC (Ministério do Desenvolvimento, Indústria e Comércio Exterior) vai avaliar carência de profissionais de TI no país (...) O presidente do Confea admitiu, no entanto, que, no curto e no médio prazo, parte das vagas terá de ser ocupada por profissionais do exterior porque o país não terá como suprir as carências de imediato (...). Notícias como estas estão sendo veiculadas todo o tempo e há anos. Em novembro de 2010 postei em Globalcoder´s um artigo sobre esta mesma questão e, passados quase seis meses, parece-me que o cenário realmente mudou ... para pior. Assim como as notícias sobre este fato, temo também em tornar-me entediante com a minha abordagem insistente em destacar esta que considero uma verdadeira calamidade nac...

Sistema interativo de TV Digital com Ginga-J

No início de 2009, os estudantes de Sistema de Informação do Centro Universitário de Votuporanga ( UNIFEV ), Caio César Pereira de Souza e Rodrigo Gonçalves Constantino me apresentaram uma proposta para que eu fosse co-orientador junto ao professor orientador Djalma Domingos da Silva , em seu Trabalho de conclusão de curso (TCC) com tema TV Digital. A base que motivou o assunto, foi a palestra apresentada por Maurício Leal na I Conferência Java Noroeste sobre o tema TV Digital, realizada em 2006 em Votuporanga-SP. Ficamos muito entusiasmados com a possibilidade de interatividade na TV Digital, e a grande quantidade de possibilidades de desenvolvimento de aplicativos nesta área. Acompanhamos de perto as notícias na imprensa e todo o esforço e iniciativas realizadas pelo Fórum do Sistema Brasileiro de TV Digital Terrestre (SBTVD) , que organizou e produziu especificações ABNT, normatizando o sistema de TV Digital Terrestre. O foco do TCC foi realizar o desenvolvimento de uma pequena ...

Voucher Retake até 31/01

Um boa noticia para quem esta estudando para alguma certificação Java e precisa de um incentivo. Esta rolando a promoção do Voucher Retake para as certificações Java, Oracle Solaris (Cluster) e NetBeans, mas corram pois é apenas até 31/01. Para quem nunca ouviu falar do Voucher Retake, trata-se de um Voucher igual ao convencional que te permite fazer uma prova de certificação, mas com a possibilidade de refazê-la em caso de reprovação. E o período é o mesmo, ou seja, um ano para as duas tentativas. Com a Sun essa promoção já era esperada todo inicio de ano, mas como não sabemos qual será a estratégia da Oracle daqui pra frente então vale a pena aproveitar e divulgar. O local de compra é um "easter egg" dentro do site da Oracle, pois não esta tão acessível como deveria. Você precisa entrar no site: http://education.oracle.com, ai vai aparecer um banner no topo com três páginas, clique na terceira página onde haverá um link "comece agora" que direciona para página...

Construindo um império com R$40,00

Algo que nós da  YaW temos nos dedicado com bastante afinco nos últimos meses é o Google AppEngine(GAE) . Para quem ainda não conhece, o GAE é um ambiente de runtime disponibilizado pelo Google onde você hospeda a sua aplicação sem precisar se preocupar com manutenção de servidores. E ainda ganha com tudo isso a escalabilidade proporcionada pelos servidores do próprio Google. Hoje ele dá suporte a duas linguagens: Python e Java(e a grande maioria dos seus frameworks de mercado como Struts 1 e Struts 2, JSF 1 e JSF 2, JPA com algumas limitações, EhCache, GWT, SpringMVC, etc. Lista completa aqui ). Um detalhe importante sobre o GAE é que de início ele é completamente gratuito, e possui uma quota(beeeem generosa) de utilização, a partir do momento que você ultrapassar esta quota você tem de pagar pelo que ultrapassou. Detalhes sobre as quotas aqui . O próprio site da YaW está hospedado no GAE. E o que isso tudo tem ha ver com os R$40,00 e o império que você quer cri...