Convertion

jackiekolokou Messages postés 2 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 14 décembre 2018 - 5 juin 2016 à 17:42
 jackiekolokou - 6 juin 2016 à 21:11
Bonjour,

s'il vous plaist j'ai assaye d'ecrire un code qui devait me permettre de convertir les differents type de donnees en d'autre avec des espaces de stockage beaucoup plus grand et on nous demandes d'utiliser cette ce bout de code schort a=(byte)(b) avec b qui est un schort.
et ceci va nous permettre de convertir de decimale a hexadecimale
merci pour votre reponse
jackie

2 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
5 juin 2016 à 22:12
Bonsoir

ça a l'air d'être la suite de ta première question, c'est pas la peine d'ouvrir plusieurs sujets, il t'aurait suffit de cliquer sur le bouton bleu "Répondre".

Ton texte est encore confus, alors je commence par ça:
nous demandes d'utiliser cette ce bout de code schort a=(byte)(b) avec b qui est un schort.

Petite précision, à moins que schort soit une classe que tu as écrite (mais tu n'as pas l'air d'en être là), le type c'est short.
En code ça donne ça
short b = 1;//pour l'exemple
short a=(byte)b;


Ça marche a vaut 1 mais, ça n'a aucune utilité, par contre
             short b = 32000;//pour l'exemple
            short a = (byte)b;

Là ça ne marche plus, a vaut 0.
Parce qu'un short est codé sur 2 octets, quand tu le castes en bute (1 octet) tu perds des informations, que tu ne retrouves pas en repassant en short.

Ensuite tu écris
et ceci va nous permettre de convertir de decimale a hexadecimale

Ben non, un byte est un entier, sur un octet, donc de 0 à 255.
Un octet peut avoir une représentation Hexa décimal, mais ça n'est pas avec un cast que tu y accèderas.
Par exemple
            byte b = 10;//pour l'exemple
            string hexa = b.ToString("x");

vexa vaut "a" qui est un string représentant la valeur hexadécimale de 10.
0
jackiekolokou
6 juin 2016 à 21:11
merci pour ton aide ca m'a beaucoup aider
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
6 juin 2016 à 01:25
Bonsoir
il ne faut pas confondre les types de données ( byte, short, integer et long pour les entiers et leurs représentations dans une base ( base 2 , base 10, base 16 pour les plus courante)
Ce sont deux notions différentes
Exemple le nombre 255
byte : FF ( 8 bits)
short : 00FF ( 16 bits)
integer : 000000FF ( 32 bits)
long : 00000000000000FF ( 64 bits)
Ces 4 valeurs précédentes sont représentées en base 16 et sont selon le type de données . On voit que la valeur 256 décimale ne peut être de type Byte ( les bytes vont de 0 à 255)
Le même raisonnement est valable pour les autres types ; et en plus on ne tient pas compte si le nombre est signé ou pas

Maintenant le nombre 255 en
base 2 : 11111111
base 10 : 255
base 16 : FF
Les 3 représentations précédentes représentent la même valeur numérique
0
Rejoignez-nous