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

O que é Lógica de programação?

Este é o segundo de uma série de posts voltados aos leitores do blog que estão dando início à carreira de desenvolvimento de software. O assunto de hoje é a lógica de programação. Para ler antes: Entendendo como funciona a programação de computadores: linguagens de programação, lógica, banco de dados A lógica de programação é um pré-requisito para quem quer se tornar um desenvolvedor de software, independente da linguagem de programação que se pretende utilizar. Mas o que é de fato a Lógica de Programação e como saber se eu tenho esse pré-requisito? A lógica de programação nada mais é do que a organização coerente das instruções do programa para que seu objetivo seja alcançado. Para criar essa organização, instruções simples do programa, como mudar o valor de uma variável ou desenhar uma imagem na tela do computador, são interconectadas a estruturas lógicas que guiam o fluxo da execução do programa. Isso é muito próximo ao que usamos em nosso cotidiano para realizar atividad...

NIO.2 do Java 7: uma nova API do Java para file system

Uma das novidades mais importantes e aguardadas do Java 7 foi a NIO.2, a nova API para a manipulação I/O com Java. A NIO.2, também conhecida como JSR 203 , disponibiliza um conjunto de novos componentes, projetados para melhorar caracterísiticas de I/O com Java como por exemplo: uma nova API para o acesso e manipulação de conteúdo do file system (sistema de arquivos); outra API para operações assíncronas com I/O; e a atualização da API para comunicação via sockets ( channel sockets ).   O Java, antes da versão 7, tratava a manipulação do sistema de arquivos de forma primitiva. O programador tinha de trabalhar com a classe File para representar arquivos e/ou diretórios, com um número escasso de funcionalidades. Uma operação simples como copiar um arquivo demandava um código relativamente grande. Outras funcionalidades triviais, como por exemplo o uso de links simbólicos, não eram suportadas. Esses são alguns dos motivos para justificar o uso de bibliotecas terceiras...

TDC BUSINESS, chega a São Paulo com novas trilhas de Inteligência Artificial e Inovação

Maior conferência de profissionais de tecnologia do Brasil abordará temas em alta no momento como, por exemplo, Inteligência Artificial, Segurança, Ciência de Dados e Inovação O TDC BUSINESS, a 17° edição do The Developer's Conference na cidade de São Paulo, que acontece entre os dias 19 e 21 de Setembro, reunirá profissionais e especialistas da área para troca de experiência, compartilhamento de conteúdos e networking. Com o tema central: “Tecnologia para negócios transformadores”, o evento será totalmente híbrido, ocorrendo presencialmente no espaço Pro Magno, e com transmissão simultânea e atividades de network pela internet. A expectativa é reunir mais de 14.000 pessoas, somando a participação presencial e online.   Segundo Yara Mascarenhas, Fundadora e Host do Evento, “nosso objetivo com o TDC é inspirar a colaboração entre os profissionais e empresas para construir uma nova realidade para o mercado de TI.  Vamos juntar tecnologia e negócios com as trilhas técnicas...

TDC ONLINE: SUA PLATAFORMA DE PALESTRAS GRAVADAS DO TDC DISPONÍVEL

Além do conteúdo ao vivo transmitido online nas edições do TDC, agora você pode ter acesso à centenas de palestras gravadas, através da nossa nova plataforma de vídeos - o TDC Online, que reúne todas as Trilhas premium, Stadium e Salas dos Patrocinadores das edições anteriores de 2022, TDC Innovation e TDC Connections.  Para acessar, basta clicar na edição em que você participou ( TDC Innovation ou TDC Connections ); Fazer o mesmo login (com e-mail e senha) cadastrados na hora de adquirir ou resgatar o seu ingresso no TDC; E clicar na Trilha de sua opção, e de acordo com a modalidade do seu ingresso. Logo em seguida, você será direcionado para a seguinte página com a lista de todas as palestras por Trilha: Pronto! Agora você tem acesso à centenas de palestras gravadas da sua área de interesse, para assistir como e quando quiser! Caso tenha esquecido a senha, clique na opção "Esqueci a senha" , insira o e-mail que você realizou para o cadastro no evento, e aparecerá a op...

Java no mundo das Telecomunicações

Este é meu primeiro post aqui no blog e gostaria de dizer que estou muito feliz em também poder contribuir com esta grande (e crescente) família Globalcode. Vou começar escrevendo aqui sobre um tópico pouco explorado no universo Java: o seu uso no mundo das telecomunicações. Vários de vocês podem ter trabalhado em projetos para empresas de telecom utilizando a tecnologia Java. Eu mesmo já participei de alguns, implantando sistemas de tarifação, faturamento, CRM e cobrança. Mas o objetivo deste post é um pouco diferente: estou falando do uso de Java na própria rede de telecom. Como vocês podem imaginar, esta rede que permite que ligações telefônicas sejam feitas de seu celular ou aparelho fixo é um tanto quanto complexa, lidando com aspectos como roteamento, bilhetagem, roaming , etc. E o Java está presente neste cenário também. Para provar que não estou mentindo, abram o site do JCP e cliquem no link "JSRs by Technology". Observem que uma das categorias lista é a JAIN ( Jav...