Binário

8 respostas
S

Gostaria de saber como faço para colocar casa decimais a esquerda em um int ou byte.
Exemplo:

<blockquote>	public static void main(String[] args) {

int a = 0010;

System.out.println(a);
}</blockquote>

Valor impresso: 8
Valor que deveria ser impresso: 0010

8 Respostas

T

0010 é, em Java, um número octal, cujo valor é 10 em base 8, ou 8 em base 10 (que é a usada).

Em vez disso, use Integer.toBinaryString (2), que irá retornar a string “10”.

Para pôr zeros à esquerda, é necessário completar com zeros à esquerda.

B

Para imprimir zeros à esquerda:

System.out.printf("%020d\n", 10); // 20 casas no total
S

Então o problema maior que é o seguinte preciso de uma List e na posição 0 deve conter um integer 0010 ao invés de 10.

T

Uai,

List<Integer> inteiros = new ArrayList<Integer>();
inteiros.add (Integer.parseInt ("0010", 2)); // a posição 0 conterá o valor 0010 em binário, que é 2 em decimal.
S

thingol:
Uai,

List<Integer> inteiros = new ArrayList<Integer>(); inteiros.add (Integer.parseInt ("0010", 2)); // a posição 0 conterá o valor 0010 em binário, que é 2 em decimal.

Então só que ele imprimi 2 ao invés de 0010.

T

Os zeros à esquerda ficam por sua conta.

fantomas

DecimalFormat df = new DecimalFormat("#00000"); System.out.println(df.format(Integer.parseInt("10")));

flws

T

silvanojava:
thingol:
Uai,

List<Integer> inteiros = new ArrayList<Integer>(); inteiros.add (Integer.parseInt ("0010", 2)); // a posição 0 conterá o valor 0010 em binário, que é 2 em decimal.

Então só que ele imprimi 2 ao invés de 0010.

Hum… você não entendeu o que é a representação decimal ou binária ou octal de um número.

Números são sempre números, e representam medidas, quantidades, contagens etc… Por exemplo, tanto faz se você ganha R$2500,00 ou US$1000,00 (se o dólar estiver a R$2,50), você está ganhando a mesma quantidade de dinheiro.
Da mesma forma, tanto faz se você tiver a representação 10 (em decimal) ou 1010 (em binário) ou A (em hexadecimal) ou 12 (em octal); todas essas representações indicam o número de dedos em ambas as mãos (dez).
Quando eu pus Integer.parseInt (“0010”, 2), eu peguei a representação binária do valor 0010, e converti para um número, que é dois.
Quando você imprimiu esse número , saiu o valor “2” (em decimal), porque você não especificou que queria ver o valor em binário.
Para especificar que quer ver um valor em binário no Java, é necessário usar Integer.toBinaryString (x) ou então Integer.toString (x, 2).

Criado 24 de março de 2009
Ultima resposta 24 de mar. de 2009
Respostas 8
Participantes 4