cs_nitrique
Messages postés344Date d'inscriptionjeudi 1 mai 2003StatutMembreDernière intervention 4 avril 2011
-
6 avril 2005 à 12:23
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 2007
-
11 avril 2005 à 20:08
Bonjour,
J'ai un char et j'aimerais afficher son code binaire (d=01100100) dans une string.
Jai un truc comme ça:
Convert.ToString(Int32.Parse(val.Text),2)
Mais il n'accepte que du numérique, or, je ne veux pas transformer mon char en numérique (il est faussé car il fait partie de la table ASCII étendue que je n'arrive pas à récupérer)
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 8 avril 2005 à 12:18
ahh excuse moi :)
>> est l'operateur de decalage de bit, par exemple si tu as un entier k qui a la valeur 7, k 111 en binaire, si tu fait k k >> 1; cela signifie que k recoie la valeur de k decaler de 1 bit vers la droite, le bit de point le plus fort est remplacer par un 0 lors du decalage, ce qui veut dire que ton k vaut desormais 11 (3) et si tu le refait, ca decale encore et k vaut 1, et ansi de suite.
>>= est similaire a ce que tu connais du += pour l'operateur + :)
il decale la propre variable. k >>= 8 fait un decalage de 8 bits vers la droite
donc ce que je disais, tu test le bit de poid le plus faible, ensuite tu decale de 1, cela fait paser le deuxieme bit en premiere position, ainsi tu retest le bit de poid le plus faible, et ainsi de suite :)
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 11 avril 2005 à 20:08
le bit de pariter fait partie des 8 bits d'un char, que tu le veuille ou non, un char ou un uchar, ca ne change pas le fait que c'est coder sur 8 bit, mais apres peut-etre que le CLR fait un decalage de bit arithmrtique et non logique, faut se renseigner sur le sujet.
sinon pour ton histoire de taille de variable, dans le namespace System.Runtime.InteropServices il y a la classe Marshall qui contient une fonction statique SizeOf :)
using System.Runtime.InteropServices;
...
int size = Marshal.SizeOf(typeof(int));
ou
int size = Marshal.SizeOf(ma_var_type_int);