C# 2, 10, 16 és 16 és ASCII kódjaik --------//Különböző karaktertípusok átalakítása C#-ban a soros port kommunikációhoz------------
A karakterhossz megértése string s = "Én vagyok a 2 katona"; int len = s. Hossz; 6 szereplő byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Hossz; 11 bájt
Nincs értelme a tizedes szöveget láncsorrá alakítani, és át kell alakítani a megfelelő ASCII kódra int t1 = 81; S1 húr = t1. ToString(); Ez a tizedes átalakítás ASCII karaktereknek felel meg, hogy érthető legyen. s1 = ((char)t1). ToString();
Hexadecimalistától a sorhoz: Ez nem logikus. Tostring. int intAB = 0x16; s1 = intAB.ToString(); Hexadecimális ASCII karakterek: byte babb = 0x45; string sas = ((char)babb). ToString();
ASCII stringekből tizedesszámokig string tr = "2Ab Liu"; d string =""; for (int i = 0; Én < tr. Hossz; i++) { int ii = (int)Convert.ToChar(tr. Szubstring(i, 1)); d = d +" "+ ii.ToString(); }
ASCII stringből hexadecimali számra s2 húr = "2Ab Liu"; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = új StringBuilder(); foreach (b báj a ba-ban) { SB. Append(b.ToString("x") + " "); }
Hexadecimalistától tizedesig int intA = 0x16; Definiálásakor 0x-nek kell lennie string strA = "16"; A húrok nélkülözhetők int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10-től 16-ig strA = Convert.ToString(intA2, 16);
Tizedes és bináris szinten a hexadecimális hasonló int int10 = 10; string str2 = Convert.ToString(int10,2);
Binárisról tizedeslegre int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Hogyan fogadja a c# serialport egy hexadecimális számhalmazt Hogyan fogadja a C# SerialPort egy hexadecimális számhalmazt, és hogyan kell megírni a programot? A legjobb válasz System.IO.Ports.SerialPort sp = új System.IO.Ports.SerialPort("COM1"); int buffersize = 6; A hexadecimális szám mérete (mondjuk 6Byte) Byte[] buffer = új Byte[buffersize]; Hozz létre egy puffert sp. Read(buffer, 0, buffersize); Olvasd el a COM1-ből
Ezt a hexadecimalis számkészletet feldolgozzák
C# soros port adatot küld Fejdíj pontok: 5 - Feloldási idő: 2009-10-19 21:15 Hatszög parancsot szeretnék küldeni a soros portba, a parancssor: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Hogyan konvertálhatom a fenti sort numerikusan úgy, hogy a számítógép soros portja tudja, hogy az általam küldött string hexadecimális? Kérdés kiegészítő: Akinek van ilyen mintakódja, kérem, segítsen, hardvergyártó vagyok, nem ismeri a szoftvereket, remélem, a mester részletes kódot tud adni, köszönöm! Kérdező: daishuanqing - 1. szintű gyakornok A legjobb válasz Adj hozzá egy hivatkozást: Microsoft.VisualBasic (C# kód, de hivatkozni kell.) )
Haladj a SerialPortName-eken az alábbi mutatóval, hogy megkapd az összes soros portot Microsoft.VisualBasic.Devices.Computer pc = új Microsoft.VisualBasic.Devices.Computer(); foreach (s húr a PC-ben. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Ezután a megjelenített comName sorozatport név alapján megkapjuk az operációs objektumot. Ezt a soros portot nyithatja meg:
System.IO.Ports.SerialPort com = új System.IO.Ports.SerialPort(comName); com. Open();
Ezután az adatokat a soros portra lehet írni
Adatküldés soros portra: com. WriteLine(this.textBox1.Text); Bájttömbök is írhatók com. Write(bArray,0,5); Ez arra az 5 bájtra utal, amelyek 0-tól kezdődnek, és a bArray bájttömböt írják
Az adatok is elfogadhatók: com. ReadLine() Lehetséges bájtok olvasása is com. ReadByte();
Végül lezárt: com. Close();
Emellett konvertáld a hexadecimális stringet bájttá byte b = Convert.ToByte("1A",16); C# soros port adatot küld Fejdíj pontok: 5 - Feloldási idő: 2009-10-19 21:15 Hatszög parancsot szeretnék küldeni a soros portba, a parancssor: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Hogyan konvertálhatom a fenti sort numerikusan úgy, hogy a számítógép soros portja tudja, hogy az általam küldött string hexadecimális? Kérdés kiegészítő: Akinek van ilyen mintakódja, kérem, segítsen, hardvergyártó vagyok, nem ismeri a szoftvereket, remélem, a mester részletes kódot tud adni, köszönöm! Kérdező: daishuanqing - 1. szintű gyakornok A legjobb válasz Adj hozzá egy hivatkozást: Microsoft.VisualBasic (C# kód, de hivatkozni kell.) )
Haladj a SerialPortName-eken az alábbi mutatóval, hogy megkapd az összes soros portot Microsoft.VisualBasic.Devices.Computer pc = új Microsoft.VisualBasic.Devices.Computer(); foreach (s húr a PC-ben. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Ezután a megjelenített comName sorozatport név alapján megkapjuk az operációs objektumot. Ezt a soros portot nyithatja meg:
System.IO.Ports.SerialPort com = új System.IO.Ports.SerialPort(comName); com. Open();
Ezután az adatokat a soros portra lehet írni
Adatküldés soros portra: com. WriteLine(this.textBox1.Text); Bájttömbök is írhatók com. Write(bArray,0,5); Ez arra az 5 bájtra utal, amelyek 0-tól kezdődnek, és a bArray bájttömböt írják
Az adatok is elfogadhatók: com. ReadLine() Lehetséges bájtok olvasása is com. ReadByte();
Végül lezárt: com. Close();
Emellett konvertáld a hexadecimális stringet bájttá byte b = Convert.ToByte("1A",16); |