Eu tenho um número e quero imprimi-lo em binário. Não quero fazer isso escrevendo um algoritmo. Existe alguma função interna para isso em Java?
277
Supondo que você queira dizer "embutido":
int x = 100;
System.out.println(Integer.toBinaryString(x));
Consulte a documentação inteira .
( Long
possui um método semelhante, BigInteger
possui um método de instância em que você pode especificar a raiz.)
Aqui não é necessário depender apenas do formato binário ou de qualquer outro formato ... Está disponível uma função flexível embutida Que imprime o formato que você deseja no seu programa. Integer.toString (int, representação);
fonte
toBinaryString
saída de usos de complemento de dois,toString
coverts o número da base especificada e coloca um sinal negativo na frente, entãotoString(-8, 2) == "-1000"
fonte
Eu precisava de algo para imprimir bem as coisas e separar os bits a cada n-bit. Em outras palavras, exiba os zeros à esquerda e mostre algo como isto:
Então aqui está o que eu escrevi:
Invoque-o assim:
fonte
result.replace(result.length() - 1, result.length(), "");
é necessário? Como estamos passando,int
que já é de 32 bits. O que estamos substituindo na segunda última linha?String
da classetrim
para obter o mesmo efeito.Moda antiga:
fonte
System.out.println
e&
estão ins construídos;)Resultado:
fonte
confira esta lógica pode converter um número em qualquer base
OU
fonte
Essa é a maneira mais simples de imprimir a representação binária interna de um número inteiro. Por exemplo : Se considerarmos n como 17, a saída será: 0000 0000 0000 0000 0000 0000 0001 0001
fonte
Simplesmente tente. Se o escopo estiver imprimindo apenas os valores binários do valor inteiro fornecido. Pode ser positivo ou negativo.
entrada
5
Resultado
101
fonte
Solução usando máscara de exibição de 32 bits,
fonte
Solução simples e muito mais fácil.
fonte
Já existem boas respostas postadas aqui para esta pergunta. Mas, é assim que eu tentei (e pode ser a lógica mais fácil com base → módulo / dividir / adicionar ):
fonte
A questão é complicada em java (e provavelmente também em outro idioma).
Um número inteiro é um tipo de dados assinado de 32 bits , mas Integer.toBinaryString () retorna uma representação de seqüência de caracteres do argumento inteiro como um número inteiro não assinado na base 2.
Portanto, Integer.parseInt (Integer.toBinaryString (X), 2) pode gerar uma exceção (assinada versus não assinada).
A maneira segura é usar Integer.toString (X, 2); isso irá gerar algo menos elegante:
-11110100110
Mas funciona !!!
fonte
Eu acho que é o algoritmo mais simples até agora (para aqueles que não querem usar funções internas):
Exemplo:
convertNumber (1) -> "0b1"
convertNumber (5) -> "0b101"
convertNumber (117) -> "0b1110101"
Como funciona: while-loop move um número para a direita (substituindo o último bit pelo penúltimo, etc), obtém o valor do último bit e o coloca no StringBuilder, repete até que não haja mais bits (é quando a = 0).
fonte
fonte
Tente desta maneira:
}
10010100
fonte
Representação binária de dado int x com zeros à esquerda:
fonte
Digite qualquer número decimal como uma entrada. Depois disso, operações como módulo e divisão para converter a entrada fornecida em número binário. Aqui está o código-fonte do programa Java para converter valores inteiros em binário e o número de bits desse binário para seu número decimal. O programa Java é compilado com êxito e executado em um sistema Windows. A saída do programa também é mostrada abaixo.
fonte
Como nenhuma resposta é aceita, talvez sua pergunta tenha sido sobre como armazenar um número inteiro em um arquivo binário. java.io.DataOutputStream pode ser o que você está procurando: https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html
fonte
Você pode usar a máscara de bits (1 << k) e executar a operação AND com o número! 1 << k tem um bit na posição k!
fonte
Ele trabalha com valores assinados e não assinados, usando uma poderosa manipulação de bits e gera os primeiros zeros à esquerda.
fonte