[Java] cmt ça marche un tableau de byte?

cmt ça marche un tableau de byte? [Java] - Java - Programmation

Marsh Posté le 25-07-2003 à 21:46:40    

Salut!
 
Je voudrais savoir cmt ça marche exactement un tableau de byte.
comment peux-t'on mettre des données dedans? On fait intervenir de l'hexa?
 
Merci

Reply

Marsh Posté le 25-07-2003 à 21:46:40   

Reply

Marsh Posté le 28-07-2003 à 12:53:57    

:heink:  
 

Code :
  1. byte[] tab = new byte[10];
  2. tab[0] = 2;
  3. tab[1] = 250;
  4. // ...


---------------
Le Tyran
Reply

Marsh Posté le 28-07-2003 à 19:47:21    

On met des int dedans?

Reply

Marsh Posté le 28-07-2003 à 19:53:16    

Scoubidoo a écrit :

On met des int dedans?


ben non, des byte... [:skeye]
Mais c'est jamais que des petits int... [:ddr555]

Reply

Marsh Posté le 28-07-2003 à 19:54:54    

Scoubidoo a écrit :

On met des int dedans?


Oui, avec un chausse-pied :o
 
Faut forcer un peu mais ça rentre :o


Message édité par gm_superstar le 28-07-2003 à 19:55:19

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-07-2003 à 22:16:15    

gm_superstar a écrit :


Oui, avec un chausse-pied :o
 
Faut forcer un peu mais ça rentre :o


 
je voulais dire des entiers. C pas de l'hexa dedans?

Reply

Marsh Posté le 28-07-2003 à 22:30:30    

Scoubidoo a écrit :


 
je voulais dire des entiers. C pas de l'hexa dedans?


 
tu sais ce que sait l'écriture de nombre en base n?
 
le nombre "seize", c'est "16" en décimal, "10" en hexadécimal, "20" en octal, "22" en base 7, "24" en base 6, "31" en base 5, "100" en base 4, "121" en base 3 et "10000" en binaire  [:calin]  
 
Maintenant un byte à un capacité de 8 bits soit 8^2=256 nombres différents.
 
edit: valeurs  
 [:neowen]


Message édité par schnapsmann le 28-07-2003 à 22:42:29

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 28-07-2003 à 23:02:00    

SchnapsMann a écrit :


 
tu sais ce que sait l'écriture de nombre en base n?
 
le nombre "seize", c'est "16" en décimal, "10" en hexadécimal, "20" en octal, "22" en base 7, "24" en base 6, "31" en base 5, "100" en base 4, "121" en base 3 et "10000" en binaire  [:calin]  
 
Maintenant un byte à un capacité de 8 bits soit 8^2=256 nombres différents.
 
edit: valeurs  
 [:neowen]


 
Oui je sais ce que c'est... merci de me le rappeller.  :D (impression de passer pour un beau blaireau  :heink: )
 
En fait, je dois faire un tableau de byte contenant les valeurs ici en hexa :  07, A1, 20. Comment remplir mon tableau?

Reply

Marsh Posté le 28-07-2003 à 23:03:48    

Scoubidoo a écrit :


 
En fait, je dois faire un tableau de byte contenant les valeurs ici en hexa :  07, A1, 20. Comment remplir mon tableau?
 


 
c'est connu comme truc, mais bon, on va mettre ça sur le compte de la jeunesse:

Code :
  1. tab[0]=0x07;
  2. tab[1]=0xA1;


 


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 28-07-2003 à 23:11:22    

SchnapsMann a écrit :


 
c'est connu comme truc, mais bon, on va mettre ça sur le compte de la jeunesse:

Code :
  1. tab[0]=0x07;
  2. tab[1]=0xA1;


 
 


 
Bah écoute, je suis désolé mais j'ai jamais utilisé les byte en Java (ni en C++ d'ailleurs).
Faut bien apprendre un jour, j'ai pas la science infuse sinon je viendrais pas ici.
 

Code :
  1. byte tab[] = {0x07,0xA1,0x20};


 
Résultat :
MIDI.java:250: possible loss of precision
found   : int
required: byte

 

Reply

Marsh Posté le 28-07-2003 à 23:11:22   

Reply

Marsh Posté le 29-07-2003 à 07:18:19    

J'dore les compilo java qui savent pas interpréter le type des constantes numériques suivant le contexte  [:fuel]  
 
Ste merde le java  :o


---------------
Le Tyran
Reply

Marsh Posté le 29-07-2003 à 09:55:24    

L'erreur se trouve sur "0xA1". Donc je suppose qu'il croit qu'il y a 16 bits au lieu de 8. Même mettant 161, ça ne passe pas.

Reply

Marsh Posté le 29-07-2003 à 09:56:34    

Scoubidoo a écrit :

L'erreur se trouve sur "0xA1". Donc je suppose qu'il croit qu'il y a 16 bits au lieu de 8. Même mettant 161, ça ne passe pas.


Essaye OxA1b ou un cast explicite: (byte)0XA1


---------------
Le Tyran
Reply

Marsh Posté le 29-07-2003 à 10:52:14    

LetoII a écrit :


Essaye OxA1b ou un cast explicite: (byte)0XA1


 
 
OxA1b
 
mdr :D :D :D
 
tucrois qu'il fait la difference entre B et b pour les chiffres en hexa ? :D
 
 
(le cats marche mais c'est hyper lourd a la longue)

Reply

Marsh Posté le 29-07-2003 à 10:53:46    

chrisbk a écrit :


 
 
OxA1b
 
mdr :D :D :D
 
tucrois qu'il fait la difference entre B et b pour les chiffres en hexa ? :D
 
 
(le cats marche mais c'est hyper lourd a la longue)
 


 
pkoi pas [:spamafote]  
 
En même temps les types atomiques de java sont pouris [:spamafote]  


---------------
Le Tyran
Reply

Marsh Posté le 29-07-2003 à 10:59:19    

LetoII a écrit :


 
 
En même temps java est pouris [:spamafote]  


 
[:meganne]

Reply

Marsh Posté le 29-07-2003 à 11:00:37    


Aussi :o


---------------
Le Tyran
Reply

Marsh Posté le 29-07-2003 à 11:47:39    

LetoII a écrit :


Essaye OxA1b ou un cast explicite: (byte)0XA1


 
Ben à ma connaissance :
 
1) le type entier par défaut de Java est int. Pour les autres types, les constantes numériques doivent être "explicite" (par exemple 1L pour un long)
 
2) java est fortement typé (pas de cast implicites vers le bas, càd byte < short < int < long < float < double. Donc si on vet caster une valeur vers la gauche, il faut le faire explicitement... ça évite d'avoir des surprises comme il arrive parfois en C :)
 
3) le type byte est signé. Il ne peut donc contenir que des valeurs comprises entre -128 et + 127. (si on spécifie la valeur en décimale, pour l'hexa c'est 0x00 .. 0xff)
 
4) dans les valeurs hexa, il ne fait pas la différence entre min et maj (0xed == 0xED)
 
bonne journée

Reply

Marsh Posté le 29-07-2003 à 11:52:24    

leonhard a écrit :


 
Ben à ma connaissance :
 
1) le type entier par défaut de Java est int. Pour les autres types, les constantes numériques doivent être "explicite" (par exemple 1L pour un long)
 
2) java est fortement typé (pas de cast implicites vers le bas, càd byte < short < int < long < float < double. Donc si on vet caster une valeur vers la gauche, il faut le faire explicitement... ça évite d'avoir des surprises comme il arrive parfois en C :)
 
3) le type byte est signé. Il ne peut donc contenir que des valeurs comprises entre -128 et + 127. (si on spécifie la valeur en décimale, pour l'hexa c'est 0x00 .. 0xff)
 
4) dans les valeurs hexa, il ne fait pas la différence entre min et maj (0xed == 0xED)
 
bonne journée
 


 
C ce que je dit, c de la merde :o


---------------
Le Tyran
Reply

Marsh Posté le 29-07-2003 à 11:57:47    

LetoII a écrit :


 
C ce que je dit, c de la merde :o  


 
ben effectivement, y'a plus de plaisir à chercher pourquoi un prgm qui marchait ne marche plus sur un ouvelles machine parce que les deux compilos n'ont pas les même règles de casting...  
 
Mes étudiants pensent comme toi... d'après eux, un programme est terminé quand le compilateur n'annonce plus d'erreurs de syntaxe, alors effectivement ç'est plus rapide en C...  

Reply

Marsh Posté le 29-07-2003 à 11:59:20    

LetoII a écrit :


C ce que je dit, c de la merde :o  


Alors retourne à tes topics sur ton langage unsafe et nous fais pas chier :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 29-07-2003 à 12:17:21    

on se calme SVP... on est là pour s'entraider  :hello: pas pour dire que tel ou tel langage c'est de la merde (c'est pas le but de mon topic)
C'est incroyable ici comme ambiance.   :heink:
 
 

Reply

Marsh Posté le 29-07-2003 à 12:21:01    

leonhard a écrit :


 
ben effectivement, y'a plus de plaisir à chercher pourquoi un prgm qui marchait ne marche plus sur un ouvelles machine parce que les deux compilos n'ont pas les même règles de casting...  


 
surtout quand on sait que les bytes prennent 4octets en memoire en java :O (sauf les tableaux, quand meme)
autrement dit on cast un peu a tout va pour du beurre, finalement :D


Message édité par chrisbk le 29-07-2003 à 12:21:38
Reply

Marsh Posté le 29-07-2003 à 12:24:59    

Scoubidoo a écrit :

on se calme SVP... on est là pour s'entraider  :hello: pas pour dire que tel ou tel langage c'est de la merde (c'est pas le but de mon topic)
C'est incroyable ici comme ambiance.   :heink:


Nan mais c'est bon hein, c'est pas passk'on s'insulte qu'on se veut forcément du mal :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 29-07-2003 à 12:27:54    

Taiche a écrit :


Nan mais c'est bon hein, c'est pas passk'on s'insulte qu'on se veut forcément du mal :o


 
ta gueule tu pollues :O

Reply

Marsh Posté le 29-07-2003 à 12:50:20    

Scoubidoo a écrit :

on se calme SVP... on est là pour s'entraider  :hello: pas pour dire que tel ou tel langage c'est de la merde (c'est pas le but de mon topic)
C'est incroyable ici comme ambiance.   :heink:
 
 


 
Faut pas le prendre comme ça, on déconne ;)
 
N'empéche que le fait qu'il n'y ai pas de type non signé c bien lourd, et que le compilo me chie une erreur quand je tente un byte temp = 128 je veux bien, mais pas quand je fais byte temp = 0 bordel  [:ddr555]


Message édité par LetoII le 29-07-2003 à 12:51:13

---------------
Le Tyran
Reply

Marsh Posté le 29-07-2003 à 17:25:54    

LetoII a écrit :


 
Faut pas le prendre comme ça, on déconne ;)
 
N'empéche que le fait qu'il n'y ai pas de type non signé c bien lourd, et que le compilo me chie une erreur quand je tente un byte temp = 128 je veux bien, mais pas quand je fais byte temp = 0 bordel  [:ddr555]


 
ça m'em... de te le dire, mais t'as farpaitement raison  :cry: j'aime bien java quand il s'agit de développer des bidules avec pleins de fenêtres qui s'ouvrent dans tous les sens, mais y z'aurait quand même pu y mettre un type non signé...  
 
quant à l'ambiance du forum, moi ça me fait marrer... et je ne me sens pas du tout insulté.... te laisses pas marcher sur les pieds LettoII !! :kaola:  

Reply

Marsh Posté le 29-07-2003 à 20:14:14    

(byte)0xA1, ça passe au compilo et à l'exec ensuite.
Merci  ;)

Reply

Marsh Posté le 29-07-2003 à 21:56:50    

Scoubidoo a écrit :

(byte)0xA1, ça passe au compilo et à l'exec ensuite.
Merci  ;)  


 
ok, ok, j'me suis mal exprimé. Soit
 
byte v1 = (byte)0xA1;  
int v2 = v1;  
 
là ou ça marche mois bien c'est que dans la variable v2 on n'a pas 0x000000A1 mais 0xFFFFFFA1 parce que v1 contient une valeur négative... ok tu peux aussi écrire
 
int v2 = 0x000000FF & v1
 
mais quand tu dois t'amuser à transformer des tableaux de bytes en long ça devient franchement lourds...

Reply

Marsh Posté le 30-07-2003 à 08:43:41    

leonhard a écrit :


 
ok, ok, j'me suis mal exprimé. Soit
 
byte v1 = (byte)0xA1;  
int v2 = v1;  
 
là ou ça marche mois bien c'est que dans la variable v2 on n'a pas 0x000000A1 mais 0xFFFFFFA1 parce que v1 contient une valeur négative... ok tu peux aussi écrire
 
int v2 = 0x000000FF & v1
 
mais quand tu dois t'amuser à transformer des tableaux de bytes en long ça devient franchement lourds...


 
Ben de toute manière si tu veux du non signé tu va ps travailler avec des byte mais des int et t'aura pas à te faire chier puisque les valeurs étant entre 0 et 255 ce sera tjrs positif  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed