cmt ça marche un tableau de byte? [Java] - Java - Programmation
Marsh Posté le 28-07-2003 à 12:53:57
Code :
|
Marsh Posté le 28-07-2003 à 19:53:16
Scoubidoo a écrit : On met des int dedans? |
ben non, des byte...
Mais c'est jamais que des petits int...
Marsh Posté le 28-07-2003 à 19:54:54
Scoubidoo a écrit : On met des int dedans? |
Oui, avec un chausse-pied
Faut forcer un peu mais ça rentre
Marsh Posté le 28-07-2003 à 22:16:15
gm_superstar a écrit : |
je voulais dire des entiers. C pas de l'hexa dedans?
Marsh Posté le 28-07-2003 à 22:30:30
Scoubidoo 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
Maintenant un byte à un capacité de 8 bits soit 8^2=256 nombres différents.
edit: valeurs
Marsh Posté le 28-07-2003 à 23:02:00
SchnapsMann a écrit : |
Oui je sais ce que c'est... merci de me le rappeller. (impression de passer pour un beau blaireau )
En fait, je dois faire un tableau de byte contenant les valeurs ici en hexa : 07, A1, 20. Comment remplir mon tableau?
Marsh Posté le 28-07-2003 à 23:03:48
Scoubidoo a écrit : |
c'est connu comme truc, mais bon, on va mettre ça sur le compte de la jeunesse:
Code :
|
Marsh Posté le 28-07-2003 à 23:11:22
SchnapsMann a écrit :
|
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 :
|
Résultat :
MIDI.java:250: possible loss of precision
found : int
required: byte
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
Ste merde le java
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.
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
Marsh Posté le 29-07-2003 à 10:52:14
LetoII a écrit : |
OxA1b
mdr
tucrois qu'il fait la difference entre B et b pour les chiffres en hexa ?
(le cats marche mais c'est hyper lourd a la longue)
Marsh Posté le 29-07-2003 à 10:53:46
chrisbk a écrit : |
pkoi pas
En même temps les types atomiques de java sont pouris
Marsh Posté le 29-07-2003 à 11:47:39
LetoII 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
Marsh Posté le 29-07-2003 à 11:52:24
leonhard a écrit : |
C ce que je dit, c de la merde
Marsh Posté le 29-07-2003 à 11:57:47
LetoII 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...
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...
Marsh Posté le 29-07-2003 à 11:59:20
LetoII a écrit : |
Alors retourne à tes topics sur ton langage unsafe et nous fais pas chier
Marsh Posté le 29-07-2003 à 12:17:21
on se calme SVP... on est là pour s'entraider 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.
Marsh Posté le 29-07-2003 à 12:21:01
leonhard a écrit : |
surtout quand on sait que les bytes prennent 4octets en memoire en java (sauf les tableaux, quand meme)
autrement dit on cast un peu a tout va pour du beurre, finalement
Marsh Posté le 29-07-2003 à 12:24:59
Scoubidoo a écrit : on se calme SVP... on est là pour s'entraider pas pour dire que tel ou tel langage c'est de la merde (c'est pas le but de mon topic) |
Nan mais c'est bon hein, c'est pas passk'on s'insulte qu'on se veut forcément du mal
Marsh Posté le 29-07-2003 à 12:27:54
Taiche a écrit : |
ta gueule tu pollues
Marsh Posté le 29-07-2003 à 12:50:20
Scoubidoo a écrit : on se calme SVP... on est là pour s'entraider pas pour dire que tel ou tel langage c'est de la merde (c'est pas le but de mon topic) |
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
Marsh Posté le 29-07-2003 à 17:25:54
LetoII a écrit : |
ça m'em... de te le dire, mais t'as farpaitement raison 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 !!
Marsh Posté le 29-07-2003 à 20:14:14
(byte)0xA1, ça passe au compilo et à l'exec ensuite.
Merci
Marsh Posté le 29-07-2003 à 21:56:50
Scoubidoo a écrit : (byte)0xA1, ça passe au compilo et à l'exec ensuite. |
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...
Marsh Posté le 30-07-2003 à 08:43:41
leonhard a écrit : |
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
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