Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1624 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Meilleur methode pour recuperer un short dans un tableau de byte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Meilleur methode pour recuperer un short dans un tableau de byte

n°371954
HelloWorld
Salut tout le monde!
Posté le 25-04-2003 à 15:10:47  profilanswer
 

Salut, comment insérer puis récupérer un short (ou int ...) dans un byte [] et le récupérer ensuite.
En fait, j'ai un byte [], et je souhaite lui insérer un short au debut, et le récupérer ensuite.
Comment faire cela proprement ?
De meme, comment fait on pour affecter un tableau (de byte par exemple) à un autre , (=> faire une copie, autrement que via un for)
Merci.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 25-04-2003 à 15:10:47  profilanswer
 

n°371968
benou
Posté le 25-04-2003 à 15:16:52  profilanswer
 

si tu veux le rajouter au début, t'as pas trop le choix : faut en créer un nouveau de taille n+1, mettre ton (byte) short au début et faire une copie du reste.
 
pour faire une copie de tableau de façon optimale, il faut se servir de System.arrayCopy()

n°371979
benou
Posté le 25-04-2003 à 15:22:36  profilanswer
 

au fait, pour récupérer ton short, tu as juste à faire un (short) tonTableau[0]
 
 
Si tu as le choix, essaye d'utiliser une autre structure qu'un tableau ... une linkedList pourrait être plus efficace si tu as bcp d'ajout ou de retrait à faire en début.

n°371993
_gtm_
Posté le 25-04-2003 à 15:28:04  profilanswer
 

benou a écrit :

si tu as bcp d'ajout ou de retrait à faire en début.


 
Tu peux aussi mettre ta liste à l'envers et faire ces rajouts à la fin (ca devient une pile dans ce cas)


Message édité par _gtm_ le 25-04-2003 à 15:28:30
n°373359
HelloWorld
Salut tout le monde!
Posté le 27-04-2003 à 18:27:00  profilanswer
 

J'ai pas le choix pour le byte [] (c'est pour envoyer dans un datagramme UDP).
Mais si je met mon short dans mon tableau de byte (avec (byte)short), il va etre tronque non ...
Moi ce que je veux dire, c'est comment mettre puis récupérer un nombre 16 bits dans un tableau de byte.
Actuellement, j'utilise un byte. Il sert en fait d'identifiant pour le datagramme (numéro (quasi) unique). Alors 256 valeurs c'est trop peu.
Il me faut au moins un identifiant sur 16 bits, voire 32 (et pourquoi pas meme 64).
Alors comment mettre cet identifiant devant / à la suite des byte à envoyer, et comment le récupérer.
Et y-a-t-il un equivalent de sizeof en JAVA ?
Ou faut ke je continue à utiliser une variable SIZEOF_ID que j'initialise manuellement avec la taille (en octets) de l'id ?
Si vous avez une meilleure méthode pour attacher un id à un datagramme je suis preneur.
Le but est de pouvoir détecter une perte de datagramme et demander sa ré-expédition.
Si vous avez un lien sur la programmation avancée avec UDP (faire en somme ce que fait TCP : assurer l'arrivée des datagrammes et gérer leur ordre).
J'utilise UDP parce que on me l'a demandé (=> comparer TCP et UDP).
Merci.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°373406
benou
Posté le 27-04-2003 à 19:49:08  profilanswer
 

pour transformer un short en tableau de byte, tu peux fire comme ca :  
 

Code :
  1. public static byte[] toBytes(short s) {
  2.    return new byte[] {(byte) (s >> 8), (byte) s};
  3. }


---------------
ma vie, mon oeuvre - HomePlayer
n°373409
fykman
Errare Humanum Est
Posté le 27-04-2003 à 19:51:12  profilanswer
 

Tu prends ton short 16 bits que j'appelerais x.
Tu passes d'abord les bits de poids faible puis les poids forts (ou l'inverse c'est au choix) dans ton byte[] comme ceci :  
 
byte bitsPoidsFaibles =  (byte)(x&255);
ajouter bitsPoidFaibles a byte[]
byte bitsPoidsForts = (byte)((x>>8)&255);
ajouter bitsPoidsForts a byte[]
 
 
Pour le recupere ensuite tu fait l'inverse
x = (short)(bitsPoidsFaibles&255) + (short)((bitsPoidsForts<<8)&255)


Message édité par fykman le 29-04-2003 à 00:27:41
n°373415
benou
Posté le 27-04-2003 à 19:57:28  profilanswer
 

pkoi faire le &255 ?


---------------
ma vie, mon oeuvre - HomePlayer
n°374937
HelloWorld
Salut tout le monde!
Posté le 28-04-2003 à 17:30:16  profilanswer
 

Ok. Donc faut le faire a la main comme je le pensais.
Bon j'avais un peu la flemme, mais avec votre code j'ai plus d'excuses.
Merci.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°375053
airseb
Posté le 28-04-2003 à 20:13:03  profilanswer
 

HelloWorld a écrit :

Salut, comment insérer puis récupérer un short (ou int ...) dans un byte [] et le récupérer ensuite.
En fait, j'ai un byte [], et je souhaite lui insérer un short au debut, et le récupérer ensuite.
Comment faire cela proprement ?
De meme, comment fait on pour affecter un tableau (de byte par exemple) à un autre , (=> faire une copie, autrement que via un for)
Merci.


 
vous avez remarqué le jeu de mots dans le titre ?  :??:

mood
Publicité
Posté le 28-04-2003 à 20:13:03  profilanswer
 

n°375060
the real m​oins moins
Posté le 28-04-2003 à 20:18:34  profilanswer
 

airseb a écrit :


 
vous avez remarqué le jeu de mots dans le titre ?  :??:  

c nul http://wickedweasel.com/oz/galleries/model_krissy/tn_k007.jpg


Message édité par the real moins moins le 28-04-2003 à 20:25:52

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°375062
nraynaud
lol
Posté le 28-04-2003 à 20:25:30  profilanswer
 

Citation :

sujet: Meilleur methode pour recuperer un Short dans un tableau de Byte


Utiliser des containers non typé ?¿?
Ça marche aussi pour récupérer des pantalons dans des tableaux de chaussures.
 
 
 
 
 
 
 
 
 
 
 
 
..... mouais, je suis un peu fatigué ajourd'hui ......

n°375078
benou
Posté le 28-04-2003 à 20:42:04  profilanswer
 

airseb a écrit :


vous avez remarqué le jeu de mots dans le titre ?  :??:  


ouais.
 
c'est dingue on arrive à mettre que 2 byte dans un short alors qu'on peut en mettre plein dans un String :/


---------------
ma vie, mon oeuvre - HomePlayer
n°375079
the real m​oins moins
Posté le 28-04-2003 à 20:43:28  profilanswer
 

benou a écrit :


ouais.
 
c'est dingue on arrive à mettre que 2 byte dans un short alors qu'on peut en mettre plein dans un String :/

moi avec une seule c'est tout rempli  :sol:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°375090
benou
Posté le 28-04-2003 à 21:00:04  profilanswer
 

the real moins moins a écrit :

moi avec une seule c'est tout rempli  :sol:  


le String  :??:


---------------
ma vie, mon oeuvre - HomePlayer
n°375092
the real m​oins moins
Posté le 28-04-2003 à 21:04:47  profilanswer
 

benou a écrit :


le String  :??:  

avec une seule byte oui :o
bon allez deux  :sarcastic:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°375384
fykman
Errare Humanum Est
Posté le 29-04-2003 à 00:25:52  profilanswer
 

benou a écrit :

pkoi faire le &255 ?


 
Le &255 est un masque binaire (un ET logique avec 0000000011111111) ce qui garantie que les bits de poids forts soit nuls. C'est pas absolument necessaire, mais c'est plutot une securité qui garantie que le cast de short en byte se passe bien (le premier bit de poids fort est un bit de signe).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Meilleur methode pour recuperer un short dans un tableau de byte

 

Sujets relatifs
Déclarer un tableau à l'aide d'une variable..Meilleur site de scripts PHP ?
Tableau avec bordure en tiret[asp / vbs] Récupérer le login windows du client pour le serveur
Meilleur system de mailing list ?[js ? vbs?] récupérer l'image associée d'un programme (icone) ?
[C/C++]récupérer la source d'une page html[PHP] Le meilleur système deprotection par mot de passe
Récupérer les mots de passe d'un forum phpBB !alterner 2 couleurs pour les lignes d'un tableau
Plus de sujets relatifs à : Meilleur methode pour recuperer un short dans un tableau de byte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR