javac rale en me signalant une possibilité de débordement et me disant
que + est int.
N'y aurait il pas d'opérateur + pour les shorts ?
Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
--
Cordialement
Dominique MICOLLET Email : enlevez le .fr.fr
Universite de Bourgogne
9, Avenue Alain SAVARY BP 47870 Tel : +33/(0)3-80-39-59-27
21078 DIJON CEDEX FRANCE Tfx : +33/(0)3-80-39-68-69
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
alexandre cartapanis
Question philosophique N°3
short k =0; k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me disant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Question philosophique N°3
short k =0;
k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me disant
que + est int.
N'y aurait il pas d'opérateur + pour les shorts ?
Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
javac rale en me signalant une possibilité de débordement et me disant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
alexandre cartapanis
Question philosophique N°3
short k =0; k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me disant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Bon j'ai parlé trop vite... Effectivement, k = k + 1; ne marche pas, pas plus que k = k + (short)1;. C'est tres tres etrange ca tiens, je vais chercher encore. A noter que k = (short)(k + 1); marche, mais cela veut dire que le compilo/interpreteur transforme k en int, fais la somme, et convertis la somme en short. C'est plutot long...
Question philosophique N°3
short k =0;
k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me disant
que + est int.
N'y aurait il pas d'opérateur + pour les shorts ?
Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Bon j'ai parlé trop vite...
Effectivement, k = k + 1; ne marche pas, pas plus que k = k + (short)1;.
C'est tres tres etrange ca tiens, je vais chercher encore.
A noter que k = (short)(k + 1); marche, mais cela veut dire que le
compilo/interpreteur transforme k en int, fais la somme, et convertis la
somme en short. C'est plutot long...
javac rale en me signalant une possibilité de débordement et me disant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Bon j'ai parlé trop vite... Effectivement, k = k + 1; ne marche pas, pas plus que k = k + (short)1;. C'est tres tres etrange ca tiens, je vais chercher encore. A noter que k = (short)(k + 1); marche, mais cela veut dire que le compilo/interpreteur transforme k en int, fais la somme, et convertis la somme en short. C'est plutot long...
Rene Mouchot
Question philosophique N°3
short k =0; k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me dis ant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Bon j'ai parlé trop vite... Effectivement, k = k + 1; ne marche pas, pas plus que k = k + (short) 1;. C'est tres tres etrange ca tiens, je vais chercher encore. A noter que k = (short)(k + 1); marche, mais cela veut dire que le compilo/interpreteur transforme k en int, fais la somme, et convertis la somme en short. C'est plutot long...
C'est en effet comme cela. Il me semble qu'il n'y a pas d'instruction JVM pour aditionner 2 short. Je ne sais pas le pourquoi de la chose par contre, s'il y a un expert dans les parages...
-- Rene Mouchot
Question philosophique N°3
short k =0;
k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me dis ant
que + est int.
N'y aurait il pas d'opérateur + pour les shorts ?
Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Bon j'ai parlé trop vite...
Effectivement, k = k + 1; ne marche pas, pas plus que k = k + (short) 1;.
C'est tres tres etrange ca tiens, je vais chercher encore.
A noter que k = (short)(k + 1); marche, mais cela veut dire que le
compilo/interpreteur transforme k en int, fais la somme, et convertis la
somme en short. C'est plutot long...
C'est en effet comme cela. Il me semble qu'il n'y a pas d'instruction
JVM pour aditionner 2 short. Je ne sais pas le pourquoi de la chose par
contre, s'il y a un expert dans les parages...
javac rale en me signalant une possibilité de débordement et me dis ant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je crois que ce n'est pas '+' qui est int, mais '1'.
Bon j'ai parlé trop vite... Effectivement, k = k + 1; ne marche pas, pas plus que k = k + (short) 1;. C'est tres tres etrange ca tiens, je vais chercher encore. A noter que k = (short)(k + 1); marche, mais cela veut dire que le compilo/interpreteur transforme k en int, fais la somme, et convertis la somme en short. C'est plutot long...
C'est en effet comme cela. Il me semble qu'il n'y a pas d'instruction JVM pour aditionner 2 short. Je ne sais pas le pourquoi de la chose par contre, s'il y a un expert dans les parages...
-- Rene Mouchot
Kupee
wrote:
Question philosophique N°3
short k =0; k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me disant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je dirais que c'est du a la promotion numérique http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursjava/promotion_numerique.html Le type par défaut est int en java codé sur 32 bits
A noter un truc amusant sur les types primitifs : un boolean prendra autant d'espace mémoire qu'un byte, c'est a dire 8 bits Ca se vérifie facilement avec une méthode de ce genre public static void main(String[] args) throws InterruptedException {
Thread.sleep(3000); byte[] in = new byte[5000000]; Thread.sleep(3000); System.out.println(in); } en regardant l'occupation mémoire. suffit de changer le type de donnée du tableau pour le constater
Dominique.Micollet@u-bourgogne.fr.fr.fr wrote:
Question philosophique N°3
short k =0;
k = k + 1 ;
javac rale en me signalant une possibilité de débordement et me disant
que + est int.
N'y aurait il pas d'opérateur + pour les shorts ?
Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je dirais que c'est du a la promotion numérique
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursjava/promotion_numerique.html
Le type par défaut est int en java codé sur 32 bits
A noter un truc amusant sur les types primitifs : un boolean prendra
autant d'espace mémoire qu'un byte, c'est a dire 8 bits
Ca se vérifie facilement avec une méthode de ce genre
public static void main(String[] args)
throws InterruptedException
{
Thread.sleep(3000);
byte[] in = new byte[5000000];
Thread.sleep(3000);
System.out.println(in);
}
en regardant l'occupation mémoire. suffit de changer le type de donnée
du tableau pour le constater
javac rale en me signalant une possibilité de débordement et me disant que + est int. N'y aurait il pas d'opérateur + pour les shorts ? Bizarre car k+=1 est accepté sans encombre.
Vous en pensez quoi ?
Je dirais que c'est du a la promotion numérique http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursjava/promotion_numerique.html Le type par défaut est int en java codé sur 32 bits
A noter un truc amusant sur les types primitifs : un boolean prendra autant d'espace mémoire qu'un byte, c'est a dire 8 bits Ca se vérifie facilement avec une méthode de ce genre public static void main(String[] args) throws InterruptedException {
Thread.sleep(3000); byte[] in = new byte[5000000]; Thread.sleep(3000); System.out.println(in); } en regardant l'occupation mémoire. suffit de changer le type de donnée du tableau pour le constater
Olivier Thomann
Le type par défaut est int en java codé sur 32 bits Normal, false = iconst_0 et true = iconst_1. Donc d'un point de vue VM,
boolean = int. -- Olivier
Le type par défaut est int en java codé sur 32 bits
Normal, false = iconst_0 et true = iconst_1. Donc d'un point de vue VM,
Ah ba non boolean = pas int, le boolean ne prend que 8 bits pas 32.
Tu as vu ça où? Tous les types sont 32 bits sauf les doubles et les longs qui sont 64bits. Comment d'après toi est représenté un boolean pour la VM?
Ben simple mesure de l'occupation mémoire regarde l'occupation mémoire avec ca public static void main(String[] args) throws InterruptedException {
Thread.sleep(3000); boolean[] in = new boolean[5000000]; Thread.sleep(3000); System.out.println(in); }
public static void main(String[] args) throws InterruptedException {
Thread.sleep(3000); byte[] in = new byte[5000000]; Thread.sleep(3000); System.out.println(in); }
public static void main(String[] args) throws InterruptedException {
Thread.sleep(3000); int[] in = new int[5000000]; Thread.sleep(3000); System.out.println(in); }
Tu verras que les 2 premiers ont une occupation mémoire proche et le 3 eme bien plus élevée
obere
Salut,
La taille de stockage des boolean est laisse libre par les specs a l'implementeur de la JVM.
Pour ce qui est de l'addition des short, k + 1 est effectivement transforme en int et doit etre recaste en short si tu ne veux pas d'erreur. Il y a tout un chapitre sur ce sujet dans la certification Java Programmer de Sun, mais je me rapelle plus du pourquoi du comment, je l'ai passe il ya trop longtemps.
a+
Salut,
La taille de stockage des boolean est laisse libre par les specs a
l'implementeur de la JVM.
Pour ce qui est de l'addition des short, k + 1 est effectivement
transforme en int et doit etre recaste en short si tu ne veux pas
d'erreur. Il y a tout un chapitre sur ce sujet dans la certification
Java Programmer de Sun, mais je me rapelle plus du pourquoi du comment,
je l'ai passe il ya trop longtemps.
La taille de stockage des boolean est laisse libre par les specs a l'implementeur de la JVM.
Pour ce qui est de l'addition des short, k + 1 est effectivement transforme en int et doit etre recaste en short si tu ne veux pas d'erreur. Il y a tout un chapitre sur ce sujet dans la certification Java Programmer de Sun, mais je me rapelle plus du pourquoi du comment, je l'ai passe il ya trop longtemps.