2014-04-24 3 views
1

Je pense que j'ai un petit problème parce que je suis en train de confondre ma terminologie là-dessus.C# Convertir Hexadécimal en chaîne

J'ai besoin d'envelopper une chaîne avec une tabulation verticale (char) 11 ou (char) 0x0b sur le front et un (char) 28 ou (char) 0x1c à la fin.

Une partie de ma confusion est que je ne comprends pas quelle est la différence entre le 11 et le 0x0b. Je crois que l'un est ascii et l'autre est hex, mais je ne suis pas positif. Donc, essentiellement, je dois faire

string response = (char)0x0b + "message" + (char)0x1c; 

Cela ne semble pas fonctionner cependant.

+0

Que signifie "ça ne semble pas marcher"? Ne compile-t-il pas? Ne produit-il pas la sortie que vous attendez? –

+0

Je voulais dire que je renvoie la réponse au serveur et qu'elle ne la reconnaît pas comme une réponse valide. – Jhorra

Répondre

1

Une partie de ma confusion est que je ne comprends pas quelle est la différence entre le 11 et le 0x0b.

Il n'y a pas de différence. Les deux représentent le même nombre mathématique onze, l'exprimant en utilisant une base différente (base 16 pour 0x0B, et base 10 pour 11). C# fournit une séquence d'échappement pour l'onglet vertical - \v, de sorte que vous pouvez écrire à la place de (char)0x0b. Il n'y a pas de séquence d'échappement pour 0x1C, mais vous pouvez utiliser une séquence d'échappement hexadécimale pour l'exprimer comme \x1C.

Le code modifié ressemblera à ceci:

string response = '\v' + message + 'x1C'; 

J'ai enlevé les guillemets doubles autour "message", en supposant qu'elle représente une variable de chaîne que votre code a préparé avant de retourner la réponse.

Questions connexes