IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[question] cast de long vers int


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut [question] cast de long vers int
    Bonjour,

    J'ai un byte[] qui contient des informations. Généralement ces infos sont de la forme <taille de l'info><info>.

    Quand je dois récuperer la taille de l'info, si elle est sur 4 octets, je dois la mettre dans un long pour qu'elle reste non signée.

    Ensuite je dois lire l'info dans un autre byte[]. Mon probleme c'est que faire un new byte[long] ça ne marche pas, il faut caster la taille en int.

    Ma question est donc la suivante : si on caste un long en int, le chiffre devient il signé ? Autrement dit, est ce que je ne risque pas d'allouer un tableau de taille négative (et donc lever une exception) ?

    Merci.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

  2. #2
    Membre confirmé Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Points : 510
    Points
    510
    Par défaut
    Je ne sais pas, mais cela a l'air expliqué dans Narrowing Primitive Conversions des specs du langage.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 62
    Points : 75
    Points
    75
    Par défaut
    En fait les long sont aussi signé
    voir la documentation :
    The values of the integral types are integers in the following ranges:
    For long, from -9223372036854775808 to 9223372036854775807, inclusive

    Un long peut être négatif.

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    en l'occurence non, le long en question contient un int (non signé) auquel on applique un masque 0xffffffff qui met les bits de poids fort a 0.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

Discussions similaires

  1. Cast de variante vers le type long
    Par randriano dans le forum Visual C++
    Réponses: 6
    Dernier message: 08/04/2008, 10h37
  2. cast float vers int
    Par planeur2007 dans le forum C
    Réponses: 5
    Dernier message: 13/03/2007, 18h39
  3. Cast de char vers int
    Par Bernardtapis dans le forum C
    Réponses: 15
    Dernier message: 28/07/2006, 16h58
  4. De int et long vers char*
    Par olivier857 dans le forum C++
    Réponses: 27
    Dernier message: 23/06/2006, 16h23
  5. Réponses: 12
    Dernier message: 31/12/2005, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo