2010-10-26 6 views
1

j'essaie d'ajouter un octet à un tableau comme indiqué ci-dessous:octet Ajouter au tableau supprime les lettres en majuscules

messagedata.Add((byte)0xF0); 

Mais quand je vérifie le tableau, l'élément ressemble 0xF0 mais puisqu'il va être un message MIDI je l'ai trouvé doit être une capitale F. Que puis-je faire pour garder les lettres en majuscules?

Répondre

4

Il n'est pas possible de conserver la lettre en majuscule, car les lettres ne sont pas stockées dans la matrice. La seule chose stockée dans le tableau est une valeur numérique, et 0xf0 est juste l'un des moyens de représenter cette valeur en tant que texte.

Vous n'avez pas besoin de garder la lettre en majuscule. Un message MIDI est envoyé en octets, pas en texte, donc 0xf0 et 0xF0 sont des représentations textuelles de la même valeur. Il existe d'autres façons de représenter la même valeur que le texte, comme 240, 0360 ou %11110000, et ils signifient tous la même chose.

Ce code:

messagedata.Add((byte)240); 

produit exactement le même résultat que votre code ci-dessus. Le code exécutable sera identique, et il n'est pas possible de déterminer quel code a été utilisé en examinant le code compilé.

+0

Merci pour la réponse rapide. Semble le problème réside dans autre chose: quand un nombre entier (par exemple 1) est converti, il en résulte 0x00 mais j'ai besoin de 0x31 ... un conseil? – internetmw

+0

@internetmw: Si vous convertissez la valeur entière '1' en un octet, vous obtiendrez un octet avec la valeur '1' ou' 0x01'. Peut-être que vous voulez convertir la valeur de caractère ''1'' en un octet, ce qui donne la valeur' 49' ou '0x31'. – Guffa

+0

Merci, je vais chercher un code de conversion différent alors;) – internetmw

0

0xF0 et 0xf0 sont la même chose. Lorsque vous regardez et voyez 0xf0 (avec un débogueur ou autre) cet outil a simplement décidé d'utiliser des minuscules. F et f signifient tous les deux 4 bits tous égaux à 1

Questions connexes