Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 21268|Απάντηση: 0

[Πηγή] C# 2, 10, 16 και 16 και τους κωδικούς ASCII τους

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 9/8/2016 10:22:40 π.μ. | | |

C# 2, 10, 16 και 16 και τους κωδικούς ASCII τους
            --------//Μετατροπή διαφόρων τύπων χαρακτήρων σε C# για επικοινωνία σειριακής θύρας------------


             Κατανόηση του μήκους των χαρακτήρων
            συμβολοσειρά s = "Είμαι 2 στρατιώτης";
            int len = s.Μήκος; 6 χαρακτήρες  
            byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
            len = σαρ. Μήκος; 11 byte  
           
            Δεν έχει νόημα να μετατρέψετε το δεκαδικό σε συμβολοσειρά και πρέπει να μετατραπεί στον αντίστοιχο κώδικα ASCII
            int t1 = 81;
            Συμβολοσειρά s1 = t1. ToString();
            Αυτή η δεκαδική μετατροπή αντιστοιχεί σε χαρακτήρες ASCII για να έχει νόημα.
            s1 = ((char)t1). ToString();

            Δεκαεξαδικό σε συμβολοσειρά: Αυτό δεν έχει νόημα. Είναι tostring.
            int intAB = 0x16;
            s1 = intAB.ToString();
            Δεκαεξαδικοί χαρακτήρες σε χαρακτήρες ASCII:
            byte babb = 0x45;
            string ass = ((char)babb). ToString();

            Συμβολοσειρές ASCII σε δεκαδικούς αριθμούς
            συμβολοσειρά tr = "2Ab Liu";
            συμβολοσειρά d ="";
            για (int i = 0; I < tr. Μήκος; i++)
            {
                int ii = (int)Convert.ToChar(tr. Υποσυμβολοσειρά (i, 1));
                d = d +" "+ ii.ToString();
            }

            Συμβολοσειρά ASCII σε δεκαεξαδικό αριθμό
            συμβολοσειρά s2 = "2Ab Liu";
            byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2);
            StringBuilder sb = νέο StringBuilder();
            Foreach (byte b σε BA)
            {
                ΣΒ. Append(b.ToString("x") + " ");
            }

            Δεκαεξαδικό σε δεκαδικό
            int intA = 0x16; Κατά τον ορισμό, πρέπει να είναι 0x  
            συμβολοσειρά strA = "16"; Οι συμβολοσειρές μπορούν να είναι χωρίς  
            int intA1 = Μετατροπή.ΣεInt32(intA);
            int intA2 = Μετατροπή.ΣεInt32(strA, 16);

            10 έως 16
            strA = Μετατροπή.ΣεΣυμβολοσειρά(intA2, 16);


            Δεκαδικό σε δυαδικό, το δεκαεξαδικό είναι παρόμοιο
            int int10 = 10;
            συμβολοσειρά str2 = Convert.ToString(int10,2);

            Δυαδικό σε δεκαδικό
            int10 = Μετατροπή.ΣεInt32(str2,2);







//-------------------------------------------------------------------------------

Πώς λαμβάνει η c# serialport ένα σύνολο δεκαεξαδικών αριθμών
Πώς λαμβάνει το C# SerialPort ένα σύνολο δεκαεξαδικών αριθμών και πώς πρέπει να γραφτεί το πρόγραμμα;
Καλύτερη απάντηση
System.IO.Ports.SerialPort sp = νέο System.IO.Ports.SerialPort ("COM1");
int buffersize = 6;   Το μέγεθος του δεκαεξαδικού αριθμού (ας πούμε 6Byte)
Byte[] buffer = νέο Byte[buffersize];   Δημιουργία buffer
σπ. Read(buffer, 0, buffersize);    Διαβάστε από το COM1

Αυτό το σύνολο δεκαεξαδικών αριθμών υποβάλλεται σε επεξεργασία  


Η σειριακή θύρα C# στέλνει δεδομένα
Πόντοι επικηρυγμένων: 5 - Ώρα επίλυσης: 2009-10-19 21:15
Θέλω να στείλω μια δεκαεξαδική εντολή στη σειριακή θύρα, η συμβολοσειρά εντολής είναι: "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"
Πώς μπορώ να μετατρέψω την παραπάνω συμβολοσειρά αριθμητικά, ώστε η σειριακή θύρα του υπολογιστή να γνωρίζει ότι η συμβολοσειρά που έστειλα είναι δεκαεξαδική; Συμπλήρωμα ερώτησης:
Ποιος έχει ένα τέτοιο δείγμα κώδικα, παρακαλώ βοηθήστε με, είμαι κατασκευαστής υλικού, δεν είμαι εξοικειωμένος με το λογισμικό, ελπίζω ο πλοίαρχος να δώσει έναν λεπτομερή κωδικό, σας ευχαριστώ! Ερώτηση: daishuanqing - Ασκούμενος Επίπεδο 1
Καλύτερη απάντηση
Προσθέστε μια αναφορά: Microsoft.VisualBasic (είναι κώδικας C#, αλλά πρέπει να αναφέρεται.) )

Διασχίστε τα SerialPortNames με τα ακόλουθα για να λάβετε όλες τις σειριακές θύρες
Microsoft.VisualBasic.Devices.Computer pc = νέο Microsoft.VisualBasic.Devices.Computer();
foreach (συμβολοσειρά s στον υπολογιστή. Ports.SerialPortNames)
{
    this.comboBox1.Items.Add(s);
}

Στη συνέχεια, το όνομα σειριακής θύρας comName που εμφανίζεται χρησιμοποιείται για τη λήψη του αντικειμένου λειτουργίας. Μπορείτε να ανοίξετε αυτήν τη σειριακή θύρα:

System.IO.Ports.SerialPort com = νέο System.IO.Ports.SerialPort(comName);
com. Open();

Στη συνέχεια, τα δεδομένα μπορούν να εγγραφούν στη σειριακή θύρα

Αποστολή δεδομένων σε σειριακή θύρα:
com. WriteLine(this.textBox1.Text);
Οι πίνακες byte μπορούν επίσης να γραφτούν
com. Write(bArray,0,5); Αναφέρεται στα 5 byte που ξεκινούν από το 0 που γράφουν τον πίνακα byte bArray

Τα δεδομένα μπορούν επίσης να γίνουν αποδεκτά:
com. Γραμμή ανάγνωσης()
Είναι επίσης δυνατή η ανάγνωση byte
com. ReadByte();


Τέλος, είναι κλειστό:
com. Κλείσιμο();


Επίσης, μετατρέψτε τη δεκαεξαδική συμβολοσειρά σε byte
byte b = Μετατροπή.ΣεByte("1A",16); Η σειριακή θύρα C# στέλνει δεδομένα
Πόντοι επικηρυγμένων: 5 - Ώρα επίλυσης: 2009-10-19 21:15
Θέλω να στείλω μια δεκαεξαδική εντολή στη σειριακή θύρα, η συμβολοσειρά εντολής είναι: "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"
Πώς μπορώ να μετατρέψω την παραπάνω συμβολοσειρά αριθμητικά, ώστε η σειριακή θύρα του υπολογιστή να γνωρίζει ότι η συμβολοσειρά που έστειλα είναι δεκαεξαδική; Συμπλήρωμα ερώτησης:
Ποιος έχει ένα τέτοιο δείγμα κώδικα, παρακαλώ βοηθήστε με, είμαι κατασκευαστής υλικού, δεν είμαι εξοικειωμένος με το λογισμικό, ελπίζω ο πλοίαρχος να δώσει έναν λεπτομερή κωδικό, σας ευχαριστώ! Ερώτηση: daishuanqing - Ασκούμενος Επίπεδο 1
Καλύτερη απάντηση
Προσθέστε μια αναφορά: Microsoft.VisualBasic (είναι κώδικας C#, αλλά πρέπει να αναφέρεται.) )

Διασχίστε τα SerialPortNames με τα ακόλουθα για να λάβετε όλες τις σειριακές θύρες
Microsoft.VisualBasic.Devices.Computer pc = νέο Microsoft.VisualBasic.Devices.Computer();
foreach (συμβολοσειρά s στον υπολογιστή. Ports.SerialPortNames)
{
    this.comboBox1.Items.Add(s);
}

Στη συνέχεια, το όνομα σειριακής θύρας comName που εμφανίζεται χρησιμοποιείται για τη λήψη του αντικειμένου λειτουργίας. Μπορείτε να ανοίξετε αυτήν τη σειριακή θύρα:

System.IO.Ports.SerialPort com = νέο System.IO.Ports.SerialPort(comName);
com. Open();

Στη συνέχεια, τα δεδομένα μπορούν να εγγραφούν στη σειριακή θύρα

Αποστολή δεδομένων σε σειριακή θύρα:
com. WriteLine(this.textBox1.Text);
Οι πίνακες byte μπορούν επίσης να γραφτούν
com. Write(bArray,0,5); Αναφέρεται στα 5 byte που ξεκινούν από το 0 που γράφουν τον πίνακα byte bArray

Τα δεδομένα μπορούν επίσης να γίνουν αποδεκτά:
com. Γραμμή ανάγνωσης()
Είναι επίσης δυνατή η ανάγνωση byte
com. ReadByte();


Τέλος, είναι κλειστό:
com. Κλείσιμο();


Επίσης, μετατρέψτε τη δεκαεξαδική συμβολοσειρά σε byte
byte b = Μετατροπή.ΣεByte("1A",16);




Προηγούμενος:Κρυπτογράφηση και αποκρυπτογράφηση C# ASCII
Επόμενος:Το WebAPI δεν υποστηρίζει λύσεις για αιτήματα μεταξύ τομέων
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com