Convertion

Messages postés
1
Date d'inscription
vendredi 3 juin 2016
Dernière intervention
5 juin 2016
- - Dernière réponse :  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
Afficher la suite 

Votre réponse

2 réponses

Messages postés
12388
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
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.
merci pour ton aide ca m'a beaucoup aider
Commenter la réponse de Whismeril
Messages postés
1727
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
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
Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.