Como poderia carregar um valor extenso em uma variável como o exemplo abaixo sem dar erro ao compilar.
byte x = 1111001100100110100111101101000001101001110010011110110001011101001100101111001111101001011011100001110001010110111010001101001110010011001011110010100010111110111100101111110010011010011110110111110100000100000100000;
byte b = (byte)
0b1111001100100110100111101101000001101001110010011110110001011101001100101111001111101001011011100001110001010110111010001101001110010011001011110010100010111110111100101111110010011010011110110111110100000100000100000
rmendes08
e qual é o erro ?
rmendes08
tem um detalhe, esse recurso só é válido a partir da versão 1.7 do Java.
Christian_Sticchi
Você quer armazenar esse valor ou mostra-lo na tela? Para isso, use um BigDecimal.
J
jefersonrl
Armazenar o valor na variável
J
jefersonrl
o BigDecimal não suporta o tamanho dos valores binários
Isso acontece por causa do tamanho do número. Número inteiros (int) suportam até 32 bits, e inteiros longos (long) até 64. Pelo jeito, esse seu número tem umas 200 posições, e portanto, ele extrapola o valor máximo que pode ser expresso através dos tipos inteiros do Java.
Mas enfim, qual é o seu problema real ? Por que você precisa guardar uma cadeia de bits desse tamanho ?
J
jefersonrl
Precisaria comparar diversos binários provavelmente teria que carrega-los em um array futuramente, mais como tem essa questão do limite de caracteres, fico no dúvida de como resolver essa questão.
rmendes081 like
Minha sugestão é você escrever uma classe BigBinary, semelhante ao BigInteger que aceite somente os dígitos 0 e 1. Você pode receber um String com o número binário e armazená-lo em um array de bytes: