Eu acredito que é porque boolean não é um tipo numérico no Java.
Apesar de ser representado como 0 e 1, no Java ele somente aceita valores true e false.
Tanto que se você fizerboolean bool = 1; Isso não vai compilar.
Mas é a minha teoria.
E
entanglement
O tipo booleano, no Java, realmente não é um tipo numérico.
Se quiser, faça a atribuição desejada como:
intx=1;booleanb=(x!=0);
(Em C++ eu usaria algo como
intx=1;boolb=!!x;
que confesso que é mais obscuro )
Vinicius_Zibetti_Res
Amigo, você está fazendo confusão, esses tipos primitivos de variáveis não são iguais, vamos lá:
boolean, range 0 ~ 1 (false e true).
byte (4 bits), range -128 ~ 127
int (32 bits), range -[telefone removido] ~ [telefone removido]
float (32 bits), range 1.4E-45 ~ 3.4028235E38
double (64 bits), range 4.9E-324 ~ 1.7976931348623157E308
São estes tipos de váriaveis existentes, pense em conjuntos numericos, como numeros inteiros e reais.
Rodrigo_Sasaki
Faltaram só 2 tipos.
short (16 bits), range -32.768 ~ 32.767 long (64 bits), range -9.223.372.036.854.775.808 ~ 9.223.372.036.854.775.807
Mas acho que a confusão do autor foi pelo fato de binários poderem ser representados por 0 e 1.
EDIT: se é pra falar de todos mesmo faltou o tipo primitivo char, rs.
O que tava fazendo confusão é porque eu não tava entendendo porque não estava conseguindo converter um int para um boolean. Acho que deve pelo fato que o digaoneves falou, o tipo boolean não possue valor numérico. É true ou false que são diferentes de 0 e 1 na verdade.
E
entanglement
O que é mais confuso no Java é que “char” é um tipo numérico :roll: e ele é equivalente ao “unsigned short” do C e C++.
Ele pode receber valores de 0 até 65535.
No C, o tipo “char” é um tipo numérico, mas ele pode receber valores de -128 a +127 ou, se for o “unsigned char”, pode receber valores de 0 a 255.