Dúvida

sei que a dúvida pode parecer besta mas não soube responder quando questionado por um amigo…

ao declarar uma variável do tipo primitiva INT em uma aplicação Java, esse meu amigo colocou antes do número alguns zeros… tipo 0076. E na hora da impressão o resultado foi inesperado, um valor arbitrário que não sei como foi exibido…

A dúvida é… POR QUE?

Sem mais… vlw

oi

isso porque ele está usando base hexadecimal, onde temos os algarimos 0,1,2,3,4,5,6,7

Na vdd, esse valor passado está em OCTAL, olhe o exemplo para entender melhor:

[code]public static void main(String[] args) {
int varInteira = 0;

	 varInteira = 0x076; //retorna valor em HEXA
	 System.out.println("valor hexa: "+varInteira);
	
	 varInteira = 0076; //retorna valor em OCTAL
	 System.out.println("valor octal: "+varInteira);
	 
	 varInteira = 76; //retorna valor em DECIMAL
	 System.out.println("valor decimal: "+varInteira);

}[/code]

Bem bacana, antes da pergunta eu tb não sabia responder, pesquisei e aprendi…
Obrigado.

flw.

[quote=André Fonseca]oi

isso porque ele está usando base hexadecimal, onde temos os algarimos 0,1,2,3,4,5,6,7

[/quote]

Base octal, certo?
Base hexadecimal não iniciaria com 0x e teria os algarismos 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F ?

[quote=gujuser]Na vdd, esse valor passado está em OCTAL, olhe o exemplo para entender melhor:

[code]public static void main(String[] args) {
int varInteira = 0;

	 varInteira = 0x076; //retorna valor em HEXA
	 System.out.println("valor hexa: "+varInteira);
	
	 varInteira = 0076; //retorna valor em OCTAL
	 System.out.println("valor octal: "+varInteira);
	 
	 varInteira = 76; //retorna valor em DECIMAL
	 System.out.println("valor decimal: "+varInteira);

}[/code]

Bem bacana, antes da pergunta eu tb não sabia responder, pesquisei e aprendi…
Obrigado.

flw.[/quote]

É isso aí.

[quote=gujuser]Na vdd, esse valor passado está em OCTAL, olhe o exemplo para entender melhor:

[code]public static void main(String[] args) {
int varInteira = 0;

	 varInteira = 0x076; //retorna valor em HEXA
	 System.out.println("valor hexa: "+varInteira);
	
	 varInteira = 0076; //retorna valor em OCTAL
	 System.out.println("valor octal: "+varInteira);
	 
	 varInteira = 76; //retorna valor em DECIMAL
	 System.out.println("valor decimal: "+varInteira);

}[/code]

Bem bacana, antes da pergunta eu tb não sabia responder, pesquisei e aprendi…
Obrigado.

flw.[/quote]

Somos 2.

O legal do fórum é isso: se ele não tivesse postado a dúvida aqui e tivesse perguntado direto ao oráculo, talvez nunca saberíamos a resposta… hahahah

Essa do Octal eu não sabia tbem…já valeu a passagem pelo forum, em menos de 1 min aprendi mais uma…

[quote=davidtiagoconceicao][quote=André Fonseca]oi

isso porque ele está usando base hexadecimal, onde temos os algarimos 0,1,2,3,4,5,6,7

[/quote]

Base octal, certo?
Base hexadecimal não iniciaria com 0x e teria os algarismos 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F ?[/quote]

isso, octal, falha minha :slight_smile: