Tipos Primitivos... Na prática qual é o range de cada um? Há diferença se usar ou não L no long

2 respostas
A

Tipos Primitivos… Na prática qual é o range de cada um? Há diferença se usar ou não L no long, F no float e D no double? Ví em livros
que ex: short até 2 bytes, int até 4 bytes… Mas na prática não é bem assim, vide abaixo:

public static void main(String[] args) { short a = 12345; //5 Bytes no máximo int i = [telefone removido]; //dez Bytes no máximo boolean b = true; //false ou true byte by = 0; //um Byte, se for string usar '' aspas simples char c = 0; //um Byte, se for string usar '' aspas simples long l = 1234567891L; //dez Bytes no máximo e opcional o uso l ou L pra compilar float f = 1234567891f; //dez Bytes no máximo e opcional o uso do f ou L pra compilar double d = 123456789D; //dez Bytes no máximo e opcional o uso do d ou D pra compilar }

2 Respostas

A

andredecotia:
Tipos Primitivos… Na prática qual é o range de cada um? Há diferença se usar ou não L no long, F no float e D no double? Ví em livros
que ex: short até 2 bytes, int até 4 bytes… Mas na prática não é bem assim, vide abaixo:

public static void main(String[] args) { short a = 12345; //5 Bytes no máximo int i = [telefone removido]; //dez Bytes no máximo boolean b = true; //false ou true byte by = 0; //um Byte, se for string usar '' aspas simples char c = 0; //um Byte, se for string usar '' aspas simples long l = 1234567891L; //dez Bytes no máximo e opcional o uso l ou L pra compilar float f = 1234567891f; //dez Bytes no máximo e opcional o uso do f ou L pra compilar double d = 123456789D; //dez Bytes no máximo e opcional o uso do d ou D pra compilar }

Detalhe: qdo. não é ponto flutuante senão é obrigado sim o uso do f no “float”… qual a diferença do float pro double sendo q os dois tem o mesmo range na prática ou de um long pra um int?

Alexandre_Saudate

andredecotia:
Tipos Primitivos… Na prática qual é o range de cada um? Há diferença se usar ou não L no long, F no float e D no double? Ví em livros
que ex: short até 2 bytes, int até 4 bytes… Mas na prática não é bem assim, vide abaixo:

public static void main(String[] args) { short a = 12345; //5 Bytes no máximo int i = [telefone removido]; //dez Bytes no máximo boolean b = true; //false ou true byte by = 0; //um Byte, se for string usar '' aspas simples char c = 0; //um Byte, se for string usar '' aspas simples long l = 1234567891L; //dez Bytes no máximo e opcional o uso l ou L pra compilar float f = 1234567891f; //dez Bytes no máximo e opcional o uso do f ou L pra compilar double d = 123456789D; //dez Bytes no máximo e opcional o uso do d ou D pra compilar }

Cara, não é assim que se conta em bytes. “12345” é um número decimal. Convertendo ele em bytes (usei a calculadora do windows), fica 00110000 00111001 . Perceba que eu separei em grupos de oito números, certo? Cada um destes grupos representa um byte. Ou seja, o número que você escreveu pode ser representado em dois bytes (e ainda sobra espaço =P ).

A mesma coisa vale para o int que você escreveu:

[telefone removido] = 01001001 10010110 00000010 11010011 => 4 bytes.

Enfim, quando você vê por aí que algo cabe em x bytes, converta para binário para checar, OK?

[]´s

Criado 19 de setembro de 2010
Ultima resposta 19 de set. de 2010
Respostas 2
Participantes 2