C# 2, 10, 16 et 16 ainsi que leurs codes ASCII --------//Conversion de différents types de caractères en C# pour la communication par port série------------
Compréhension de la longueur des caractères chaînes s = « Je suis un soldat à 2 » ; int len = s. Longueur ; 6 personnages octet[] sarr = System.Text.Encoding.Default.GetBytes(s) ; len = sarr. Longueur ; 11 octets
Il n’a aucun sens de convertir décimal en chaîne, et il doit être converti en code ASCII correspondant int t1 = 81 ; chaîne s1 = t1. ToString() ; Cette conversion décimale correspond aux caractères ASCII pour avoir du sens. s1 = ((char)t1). ToString() ;
Hexadécimal à chaîne : Cela n’a pas de sens. C’est un cordage. int intAB = 0x16 ; s1 = intAB.ToString() ; Caractères hexadécimaux à ASCII : octet babb = 0x45 ; string ass = ((char)babb). ToString() ;
Chaînes ASCII vers nombres décimaux string tr = « 2Ab Liu » ; string d = » ; pour (int i = 0 ; Je < tr. Longueur ; i++) { int ii = (int)Convertir.ToChar(trad. Sous-string(i, 1)) ; d = d + » « + ii.ToString() ; }
Chaîne ASCII vers nombre hexadécimal chaîne s2 = « 2Ab Liu » ; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2) ; StringBuilder sb = nouveau StringBuilder() ; foreach (octet b dans ba) { sb. Appender(b.ToString(« x ») + " « ) ; }
Hexadécimal à décimal int intA = 0x16 ; Lors de la définition, il doit être 0x stringA = « 16 » ; Les cordes peuvent être sans int intA1 = Convert.ToInt32(intA) ; int intA2 = Convert.ToInt32(strA, 16) ;
10 à 16 strA = Convert.ToString(intA2, 16) ;
Décimal à binaire, hexadécimal est similaire int int10 = 10 ; string str2 = Convert.ToString(int10,2) ;
Binaire vers décimal int10 = Convert.ToInt32(str2,2) ;
//-------------------------------------------------------------------------------
Comment le porte-série C# reçoit-il un ensemble de nombres hexadécimaux Comment C# SerialPort reçoit-il un ensemble de nombres hexadécimaux, et comment le programme doit-il être écrit ? Meilleure réponse System.IO.Ports.SerialPort sp = nouveau System.IO.Ports.SerialPort(« COM1 ») ; int buffersize = 6 ; La taille du nombre hexadécimal (disons 6 octets) Octet[] tampon = nouveau octet[taille du tampon] ; Créer un tampon sp. Lecture (buffer, 0, buffersize) ; Lecture de COM1
Cet ensemble de nombres hexadécimaux est traité
Le port série C# envoie les données Points de prime : 5 - Temps de résolution : 19-10-2009 21:15 Je veux envoyer une commande hexadécimale au port série, la chaîne de commandes est : « 00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A » Comment puis-je convertir numériquement la chaîne ci-dessus pour que le port série de l’ordinateur sache que la chaîne que j’ai envoyée est hexadécimale ? Supplément de question : Qui possède un tel code d’exemple, aidez-moi s’il vous plaît, je suis fabricant de matériel, je ne connais pas les logiciels, j’espère que le maître pourra fournir un code détaillé, merci ! Questionneur : daishuanqing - Stagiaire Niveau 1 Meilleure réponse Ajoutez une référence : Microsoft.VisualBasic (c’est du code C#, mais il doit être référencé.) )
Parcourez les SerialPortNames avec les éléments suivants pour obtenir tous les ports série Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer() ; Foreach (chaîne S dans pc. Ports.SérieNomsPort)
{ this.comboBox1.Items.Add(s) ;
}
Ensuite, le nom de port série comName affiché est utilisé pour obtenir l’objet d’opération. Vous pouvez ouvrir ce port série :
System.IO.Ports.SerialPort com = nouveau System.IO.Ports.SerialPort(comName) ; com. Open() ;
Les données peuvent alors être écrites sur le port série
Envoi des données vers un port série : com. WriteLine(this.textBox1.Text) ; Des tableaux d’octets peuvent également être écrits com. Write(bArray,0,5) ; Il fait référence aux 5 octets commençant par 0 qui écrivent le tableau d’octets bArray
Les données peuvent également être acceptées : com. ReadLine() Il est également possible de lire des octets com. ReadByte() ;
Enfin, il est fermé : com. Close() ;
De plus, convertir la chaîne hexadécimale en octet octet b = Convert.ToByte(« 1A »,16) ; Le port série C# envoie les données Points de prime : 5 - Temps de résolution : 19-10-2009 21:15 Je veux envoyer une commande hexadécimale au port série, la chaîne de commandes est : « 00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A » Comment puis-je convertir numériquement la chaîne ci-dessus pour que le port série de l’ordinateur sache que la chaîne que j’ai envoyée est hexadécimale ? Supplément de question : Qui possède un tel code d’exemple, aidez-moi s’il vous plaît, je suis fabricant de matériel, je ne connais pas les logiciels, j’espère que le maître pourra fournir un code détaillé, merci ! Questionneur : daishuanqing - Stagiaire Niveau 1 Meilleure réponse Ajoutez une référence : Microsoft.VisualBasic (c’est du code C#, mais il doit être référencé.) )
Parcourez les SerialPortNames avec les éléments suivants pour obtenir tous les ports série Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer() ; Foreach (chaîne S dans pc. Ports.SérieNomsPort)
{ this.comboBox1.Items.Add(s) ;
}
Ensuite, le nom de port série comName affiché est utilisé pour obtenir l’objet d’opération. Vous pouvez ouvrir ce port série :
System.IO.Ports.SerialPort com = nouveau System.IO.Ports.SerialPort(comName) ; com. Open() ;
Les données peuvent alors être écrites sur le port série
Envoi des données vers un port série : com. WriteLine(this.textBox1.Text) ; Des tableaux d’octets peuvent également être écrits com. Write(bArray,0,5) ; Il fait référence aux 5 octets commençant par 0 qui écrivent le tableau d’octets bArray
Les données peuvent également être acceptées : com. ReadLine() Il est également possible de lire des octets com. ReadByte() ;
Enfin, il est fermé : com. Close() ;
De plus, convertir la chaîne hexadécimale en octet octet b = Convert.ToByte(« 1A »,16) ; |