Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 21268|Antwoord: 0

[Bron] C# 2, 10, 16 en 16 en hun ASCII-codes

[Link kopiëren]
Geplaatst op 09-08-2016 10:22:40 | | |

C# 2, 10, 16 en 16 en hun ASCII-codes
            --------//Conversie van verschillende tekentypen in C# voor seriële poortcommunicatie------------


             Begrip van tekenlengte
            string s = "Ik ben een 2-soldaat";
            int len = s.Lengte; 6 personages  
            byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
            len = sarr. Lengte; 11 bytes  
           
            Het heeft geen zin om decimaal naar string om te zetten, en het moet worden omgezet naar de bijbehorende ASCII-code
            int t1 = 81;
            Snaar S1 = T1. ToString();
            Deze decimale conversie komt overeen met ASCII-karakters, om het logisch te maken.
            s1 = ((karakter)t1). ToString();

            Hexadecimaal naar snaar: Dit slaat nergens op. Het is tostring.
            int intAB = 0x16;
            s1 = intAB.ToString();
            Hexadecimale naar ASCII-karakters:
            byte babb = 0x45;
            string ass = ((char)babb). ToString();

            ASCII-strings tot decimale getallen
            snaar tr = "2Ab Liu";
            string d ="";
            voor (int i = 0; Ik < TR. Lengte; i++)
            {
                int ii = (int)Convert.ToChar(tr. Substring(i, 1));
                d = d +" "+ ii.ToString();
            }

            ASCII-string naar hexadecimaal getal
            snaar s2 = "2Ab Liu";
            byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2);
            StringBuilder sb = nieuwe StringBuilder();
            foreach (byte b in BA)
            {
                SB. Append(b.ToString("x") + " ");
            }

            Hexadecimaal tot decimaal
            int intA = 0x16; Bij het definiëren moet het 0x zijn  
            snaar strA = "16"; Snaren kunnen zonder zijn  
            int intA1 = Convert.ToInt32(intA);
            int intA2 = Convert.ToInt32(strA, 16);

            10 tot 16
            strA = Convert.ToString(intA2, 16);


            Van decimaal tot binair is hexadecimaal vergelijkbaar
            int int10 = 10;
            string str2 = Convert.ToString(int10,2);

            Binair naar decimaal
            int10 = Convert.ToInt32(str2,2);







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

Hoe ontvangt c# serialport een set hexadecimale getallen
Hoe ontvangt C# SerialPort een set hexadecimale getallen, en hoe moet het programma worden geschreven?
Beste antwoord
System.IO.Ports.SerialPort sp = nieuwe System.IO.Ports.SerialPort ("COM1");
int buffersize = 6;   De grootte van het hexadecimale getal (laten we zeggen 6Byte)
Byte[] buffer = nieuwe Byte[buffersize];   Maak een buffer
Sp. Read(buffer, 0, buffersize);    Lees uit COM1

Deze set hexadecimale getallen wordt verwerkt  


C# seriële poort verzendt data
Bountypunten: 5 - Resolutietijd: 2009-10-19 21:15
Ik wil een hex-commando naar de seriële poort sturen, de commandoreeks is: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A"
Hoe kan ik bovenstaande string numeriek omzetten zodat de seriële poort van de computer weet dat de string die ik heb verzonden hexadecimaal is? Vraagsupplement:
Wie heeft zo'n voorbeeldcode, help me alsjeblieft, ik ben een hardwarefabrikant, niet bekend met software, ik hoop dat de master een gedetailleerde code kan geven, dank je wel! Vraagsteller: daishuanqing - Stagiair Niveau 1
Beste antwoord
Voeg een referentie toe: Microsoft.VisualBasic (is C#-code, maar moet worden geraadpleegd). )

Doorloop de SerialPortNames met het volgende om alle seriële poorten te krijgen
Microsoft.VisualBasic.Devices.Computer pc = nieuwe Microsoft.VisualBasic.Devices.Computer();
Foreach (string s in pc. Ports.SerialPortNames)
{
    this.comboBox1.Items.Add(s);
}

Vervolgens wordt de weergegeven seriële poortnaam comName gebruikt om het operatieobject te verkrijgen. Je kunt deze seriële poort openen:

System.IO.Ports.SerialPort com = nieuwe System.IO.Ports.SerialPort(comName);
com. Open();

Data kan vervolgens naar de seriële poort worden geschreven

Gegevens naar seriële poort sturen:
com. WriteLine(this.textBox1.Text);
byte-arrays kunnen ook worden geschreven
com. Write(bArray,0,5); Het verwijst naar de 5 bytes die vanaf 0 beginnen en die de byte-array bArray schrijven

Gegevens kunnen ook worden geaccepteerd:
com. ReadLine()
Het is ook mogelijk om bytes te lezen
com. ReadByte();


Ten slotte is het gesloten:
com. Close();


Converteer ook de hexadecimale string naar byte
byte b = Convert.ToByte("1A",16); C# seriële poort verzendt data
Bountypunten: 5 - Resolutietijd: 2009-10-19 21:15
Ik wil een hex-commando naar de seriële poort sturen, de commandoreeks is: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A"
Hoe kan ik bovenstaande string numeriek omzetten zodat de seriële poort van de computer weet dat de string die ik heb verzonden hexadecimaal is? Vraagsupplement:
Wie heeft zo'n voorbeeldcode, help me alsjeblieft, ik ben een hardwarefabrikant, niet bekend met software, ik hoop dat de master een gedetailleerde code kan geven, dank je wel! Vraagsteller: daishuanqing - Stagiair Niveau 1
Beste antwoord
Voeg een referentie toe: Microsoft.VisualBasic (is C#-code, maar moet worden geraadpleegd). )

Doorloop de SerialPortNames met het volgende om alle seriële poorten te krijgen
Microsoft.VisualBasic.Devices.Computer pc = nieuwe Microsoft.VisualBasic.Devices.Computer();
Foreach (string s in pc. Ports.SerialPortNames)
{
    this.comboBox1.Items.Add(s);
}

Vervolgens wordt de weergegeven seriële poortnaam comName gebruikt om het operatieobject te verkrijgen. Je kunt deze seriële poort openen:

System.IO.Ports.SerialPort com = nieuwe System.IO.Ports.SerialPort(comName);
com. Open();

Data kan vervolgens naar de seriële poort worden geschreven

Gegevens naar seriële poort sturen:
com. WriteLine(this.textBox1.Text);
byte-arrays kunnen ook worden geschreven
com. Write(bArray,0,5); Het verwijst naar de 5 bytes die vanaf 0 beginnen en die de byte-array bArray schrijven

Gegevens kunnen ook worden geaccepteerd:
com. ReadLine()
Het is ook mogelijk om bytes te lezen
com. ReadByte();


Ten slotte is het gesloten:
com. Close();


Converteer ook de hexadecimale string naar byte
byte b = Convert.ToByte("1A",16);




Vorig:C# ASCII-encryptie en -ontsleuteling
Volgend:WebAPI ondersteunt geen workarounds voor cross-domain verzoeken
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com