Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 21268|Répondre: 0

[Source] C# 2, 10, 16 et 16 ainsi que leurs codes ASCII

[Copié le lien]
Publié sur 09/08/2016 10:22:40 | | |

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) ;




Précédent:Chiffrement et déchiffrement ASCII en C#
Prochain:WebAPI ne prend pas en charge les solutions de contournement pour les requêtes inter-domaines
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com