Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Como converter de decimal para binário usando os operadores de bits em Java - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 894 vezes |
Este exercício faz parte da nossa lista de desafios de programação em Java. Pergunta/Tarefa: Escreva um programa Java para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits. Sua saída deverá ser parecida com: Informe um número decimal: 9 O número binário é: 00000000000000000000000000001001 Veja a resolução completa para o exercício em Java, comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { // vamos definir o tamanho do vetor para guardar // os dígitos do número binário final static int TAM_INT = Integer.BYTES * 8; public static void main(String[] args){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // variáveis para ajudar a resolver o problema int decimal, indice, i; // vetor para guardar o número binário int binario[] = new int[TAM_INT]; // vamos pedir para o usuário informar um decimal inteiro System.out.print("Informe um número decimal: "); decimal = Integer.parseInt(entrada.nextLine()); // ajustamos índice para o último elemento do vetor indice = TAM_INT - 1; // enquanto índice for maior ou igual a 0 while(indice >= 0){ // vamos guardar o bit menos significativo LSB binario[indice] = decimal & 1; // diminuímos o índice 100010 indice--; // desloca bits para a direita uma posição decimal = decimal >> 1; } // agora vamos exibir o número binário System.out.print("O número binário é: "); for(i = 0; i < TAM_INT; i++){ System.out.print(binario[i]); } System.out.println("\n\n"); } } |
![]() |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como classificar um array em ordem crescente usando o método sort() da classe Arrays do JavaQuantidade de visualizações: 26749 vezes |
Nesta dica mostrarei como podemos usar o método sort() da classe Arrays da linguagens Java para ordenar um vetor de inteiros em ordem crescente. A assinatura do método sort() que usaremos é aquela que recebe apenas um argumento, ou seja, o array a ser ordenado. Note que a implementação de ordenação usada pelo método sort() é a ordenação quicksort, considerada uma das mais rápidas nos dias atuais. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos declarar e construir um vetor de 5 inteiros int[] valores = new int[5]; // inicializa os elementos do array valores[0] = 23; valores[1] = 65; valores[2] = 2; valores[3] = 87; valores[4] = 34; // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("Elementos na ordem original:"); for(int valor : valores){ System.out.print(valor + " "); } // ordena os valores em ordem crescente Arrays.sort(valores); // exibe os valores dos elementos do array // usando o laço for melhorado System.out.println("\n\nElementos classificados em ordem crescente:"); for(int valor : valores){ System.out.print(valor + " "); } System.out.println("\n\n"); System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: Elementos na ordem original: 23 65 2 87 34 Elementos classificados em ordem crescente: 2 23 34 65 87 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Como calcular a potência de um número usando recursividade em Java - Funções recursivas em JavaQuantidade de visualizações: 4647 vezes |
Pergunta/Tarefa: A potenciação ou exponenciação é a operação de elevar um número ou expressão a uma dada potência. Escreva um método Java recursivo que recebe uma base e um expoente e eleva a base ao expoente. Seu método deverá possuir a seguinte assinatura: public static int potencia(int base, int expoente){ // sua implementação aqui } Sua saída deverá ser parecida com: Informe a base: 5 Informe o expoente: 3 A base 5 elevada ao exponente 3 é 125 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // solicita a base System.out.print("Informe a base: "); // lê a base int base = Integer.parseInt(entrada.nextLine()); // solicita o expoente System.out.print("Informe o expoente: "); // lê o expoente int expoente = Integer.parseInt(entrada.nextLine()); // mostra o resultado System.out.print("A base " + base + " elevada ao exponente " + expoente + " é " + potencia(base, expoente)); System.out.println("\n"); } // método recursivo que eleva uma base a um determinado expoente public static int potencia(int base, int expoente){ // a recursivida deve parar quando o expoente for igual a 1 if(expoente == 1){ return base; } else{ // efetua uma nova chamada recursiva fornecendo o expoente - 1 return base * potencia(base, expoente - 1); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Árvores Binárias e Árvores Binárias de Busca |
Exercícios Resolvidos de Java - Travessia de uma árvore binária de busca usando o percurso em-ordem (in-order, In-ordem ou ordem simétrica)Quantidade de visualizações: 2281 vezes |
Pergunta/Tarefa: O percurso em ordem (em-ordem, in-order, In-ordem ou ordem simétrica) é usado quando queremos exibir os valores dos nós da árvore binária de busca em ordem ascendente. Neste tipo de percurso nós visitamos primeiramente a sub-árvore da esquerda, então o nó atual e finalmente a sub-árvore à direita do nó atual. É importante notar que esta travessia é feita por meio de uma função recursiva. Escreva um programa Java que contenha uma árvore binária de busca cujos nós guardarão, além das referências para o filho esquerdo e o filho direito, apenas um valor inteiro. Forneça uma função inserir() que permitirá inserir os valores na árvore. Em seguida forneça uma função recursiva que permitirá fazer a travessia in-order da árvore. Sua saída deverá ser parecida com: Informe um valor inteiro: 7 Informe um valor inteiro: 3 Informe um valor inteiro: 18 Informe um valor inteiro: 4 Informe um valor inteiro: 9 Percurso em ordem: 3 4 7 9 18 Veja a resolução comentada deste exercício usando Java: Código para NoArvore.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class NoArvore { int valor; // valor armazenado no nó NoArvore esquerdo; // filho esquerdo NoArvore direito; // filho direito // construtor do nó public NoArvore(int valor){ this.valor = valor; } } Código para ArvoreBinariaBusca.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class ArvoreBinariaBusca { private NoArvore raiz; // referência para a raiz da árvore // método usado para inserir um novo nó na árvore // retorna true se o nó for inserido com sucesso e false // se o elemento não puder ser inserido (no caso de já // existir um elemento igual) public boolean inserir(int valor){ // a árvore ainda está vazia? if(raiz == null){ // vamos criar o primeiro nó e definí-lo como a raiz da árvore raiz = new NoArvore(valor); // cria um novo nó } else{ // localiza o nó pai NoArvore pai = null; NoArvore noAtual = raiz; // começa a busca pela raiz // enquanto o nó atual for diferente de null while(noAtual != null){ if(valor < noAtual.valor) { pai = noAtual; noAtual = noAtual.esquerdo; } else if(valor > noAtual.valor){ pai = noAtual; noAtual = noAtual.direito; } else{ return false; // um nó com este valor foi encontrado } } // cria o novo nó e o adiciona ao nó pai if(valor < pai.valor){ pai.esquerdo = new NoArvore(valor); } else{ pai.direito = new NoArvore(valor); } } return true; // retorna true para indicar que o novo nó // foi inserido } // método que permite disparar a travessia em-ordem public void emOrdem(){ emOrdem(raiz); } // sobrecarga do método emOrdem com uma parâmetro (esta é a // versão recursiva do método) private void emOrdem(NoArvore raiz){ if(raiz == null){ // condição de parada return; } // visita a sub-árvore da esquerda emOrdem(raiz.esquerdo); // visita o nó atual System.out.print(raiz.valor + " "); // visita a sub-árvore da direita emOrdem(raiz.direito); } } E aqui está o código para a classe que permite testar a árvore: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Erro. Um elemento já contém este valor."); } } // vamos exibir os nós da árvore usando o percurso em ordem System.out.println("\nPercurso em ordem:"); arvore.emOrdem(); System.out.println("\n"); } } |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Delphi - Como obter a quantidade de caracteres em uma palavra ou texto usando a função Length() do Delphi |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |