C# 2, 10, 16 ir 16 ir jų ASCII kodai --------// Įvairių simbolių tipų konvertavimas C# nuosekliojo prievado ryšiui------------
Simbolių ilgio supratimas string s = "Aš esu 2 kareivis"; int len = s.Ilgis; 6 simboliai baitas[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Ilgis; 11 baitų
Nėra prasmės konvertuoti dešimtainį skaičių į eilutę, ir jis turi būti konvertuotas į atitinkamą ASCII kodą int t1 = 81; eilutė s1 = t1. ToString(); Šis dešimtainis konvertavimas atitinka ASCII simbolius, kad būtų prasmingas. s1 = ((char)t1). ToString();
Šešioliktainė eilutė: Tai neturi prasmės. Tai virvelė. int intAB = 0x16; s1 = intAB.ToString(); Šešioliktainiai į ASCII simbolius: baitas babb = 0x45; stygos asilas = ((char)babb). ToString();
ASCII eilutės į dešimtainius skaičius string tr = "2Ab Liu"; eilutė d =""; for (int i = 0; I < tr. Ilgis; i++) { int ii = (int)Convert.ToChar(tr. Papildoma eilutė (i, 1)); d = d + "+ ii.ToString(); }
ASCII eilutė į šešioliktainį skaičių eilutė s2 = "2Ab Liu"; baitas[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = naujas StringBuilder(); foreach (baitas b ba) { sb. Append(b.ToString("x") + " "); }
Nuo šešioliktainio iki dešimtainio int intA = 0x16; Apibrėžiant jis turi būti 0x string strA = "16"; Stygos gali būti be int intA1 = Konvertuoti.ĮInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
Nuo 10 iki 16 strA = Convert.ToString(intA2, 16);
Dešimtainis į dvejetainį, šešioliktainis yra panašus int int10 = 10; string str2 = Convert.ToString(int10,2);
Dvejetainis į dešimtainį int10 = Konvertuoti.ĮInt32(str2,2);
//-------------------------------------------------------------------------------
Kaip c# serialport gauna šešioliktainių skaičių rinkinį Kaip C# SerialPort gauna šešioliktainių skaičių rinkinį ir kaip turėtų būti parašyta programa? Geriausias atsakymas System.IO.Ports.SerialPort sp = naujas System.IO.Ports.SerialPort ("COM1"); int buferio dydis = 6; Šešioliktainio skaičiaus dydis (tarkime, 6 baitai) Baitas[] buferis = naujas baitas[buferio dydis]; Sukurkite buferį sp. Read(buferis, 0, buferio dydis); Skaitykite iš COM1
Šis šešioliktainių skaičių rinkinys apdorojamas
C# nuoseklusis prievadas siunčia duomenis Premijos taškai: 5 - Sprendimo laikas: 2009-10-19 21:15 Noriu nusiųsti šešiakampę komandą į nuoseklųjį prievadą, komandų eilutė yra: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Kaip galiu konvertuoti aukščiau pateiktą eilutę skaitmeniškai, kad kompiuterio nuoseklusis prievadas žinotų, kad mano išsiųsta eilutė yra šešioliktainė? Klausimo papildymas: Kas turi tokį pavyzdinį kodą, prašau padėti man, aš esu aparatūros gamintojas, nesusipažinęs su programine įranga, tikiuosi, kad meistras gali pateikti išsamų kodą, ačiū! Klausėjas: daishuanqing - 1 lygio praktikantas Geriausias atsakymas Įtraukite nuorodą: Microsoft.VisualBasic (yra C# kodas, bet jį reikia nurodyti.) )
Pereikite SerialPortNames atlikdami šiuos veiksmus, kad gautumėte visus nuosekliuosius prievadus Microsoft.VisualBasic.Devices.Computer pc = naujas Microsoft.VisualBasic.Devices.Computer(); foreach (eilutė s pc. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Tada rodomas nuosekliojo prievado pavadinimas comName naudojamas operacijos objektui gauti. Galite atidaryti šį nuoseklųjį prievadą:
System.IO.Ports.SerialPort com = naujas System.IO.Ports.SerialPort(comName); com. Atidaryti ();
Tada duomenis galima įrašyti į nuoseklųjį prievadą
Duomenų siuntimas į nuoseklųjį prievadą: com. WriteLine(this.textBox1.Text); Taip pat galima rašyti baitų masyvus com. Rašyti(bArray,0,5); Tai reiškia 5 baitus, prasidedančius nuo 0, kurie rašo baitų masyvą bArray
Duomenys taip pat gali būti priimami: com. ReadLine() Taip pat galima skaityti baitus com. ReadByte();
Galiausiai jis uždarytas: com. Uždaryti ();
Taip pat konvertuokite šešioliktainę eilutę į baitą baitas b = Convert.ToByte("1A",16); C# nuoseklusis prievadas siunčia duomenis Premijos taškai: 5 - Sprendimo laikas: 2009-10-19 21:15 Noriu nusiųsti šešiakampę komandą į nuoseklųjį prievadą, komandų eilutė yra: "00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A" Kaip galiu konvertuoti aukščiau pateiktą eilutę skaitmeniškai, kad kompiuterio nuoseklusis prievadas žinotų, kad mano išsiųsta eilutė yra šešioliktainė? Klausimo papildymas: Kas turi tokį pavyzdinį kodą, prašau padėti man, aš esu aparatūros gamintojas, nesusipažinęs su programine įranga, tikiuosi, kad meistras gali pateikti išsamų kodą, ačiū! Klausėjas: daishuanqing - 1 lygio praktikantas Geriausias atsakymas Įtraukite nuorodą: Microsoft.VisualBasic (yra C# kodas, bet jį reikia nurodyti.) )
Pereikite SerialPortNames atlikdami šiuos veiksmus, kad gautumėte visus nuosekliuosius prievadus Microsoft.VisualBasic.Devices.Computer pc = naujas Microsoft.VisualBasic.Devices.Computer(); foreach (eilutė s pc. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Tada rodomas nuosekliojo prievado pavadinimas comName naudojamas operacijos objektui gauti. Galite atidaryti šį nuoseklųjį prievadą:
System.IO.Ports.SerialPort com = naujas System.IO.Ports.SerialPort(comName); com. Atidaryti ();
Tada duomenis galima įrašyti į nuoseklųjį prievadą
Duomenų siuntimas į nuoseklųjį prievadą: com. WriteLine(this.textBox1.Text); Taip pat galima rašyti baitų masyvus com. Rašyti(bArray,0,5); Tai reiškia 5 baitus, prasidedančius nuo 0, kurie rašo baitų masyvą bArray
Duomenys taip pat gali būti priimami: com. ReadLine() Taip pat galima skaityti baitus com. ReadByte();
Galiausiai jis uždarytas: com. Uždaryti ();
Taip pat konvertuokite šešioliktainę eilutę į baitą baitas b = Convert.ToByte("1A",16); |