C# 2, 10, 16 і 16 та їхні ASCII-коди --------//Конвертація різних типів символів у C# для послідовного порту------------
Розуміння довжини символів string s = «Я — двоє солдатів»; int len = s.Довжина; 6 персонажів byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Довжина; 11 байт
Немає сенсу перетворювати десятковий у рядок, і його потрібно конвертувати у відповідний ASCII-код int t1 = 81; Струна s1 = t1. ToString(); Це десяткове перетворення відповідає ASCII-символам, щоб мати сенс. s1 = (((символ)t1). ToString();
Шістнадцяткова до струнки: це не має сенсу. Це тострінг. int intAB = 0x16; s1 = intAB.ToString(); Від шістнадцяткових до ASCII-символів: byte babb = 0x45; Струнковий зад = (((Чар)Бабб). ToString();
ASCII-рядки з десятковими числами string tr = "2Ab Liu"; рядок d =""; для (int i = 0; Я < TR. Довжина; i++) { int ii = (int)Convert.ToChar(tr. Підрядка(i, 1)); d = d +" "+ ii.ToString(); }
ASCII string до шістнадцяткового числа струн s2 = «2Ab Liu»; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = новий StringBuilder(); foreach (байт b у ba) { SB. Append(b.ToString("x") + " "); }
Від шістнадцяткової до десяткової int intA = 0x16; При визначенні має бути 0x струна strA = "16"; Струни можуть бути без int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
З 10 до 16 років strA = Convert.ToString(intA2, 16);
Від десяткового до двійкового — шістнадцяткова — подібна int int10 = 10; string str2 = Convert.ToString(int10,2);
Від двійкового до десяткового int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
Як C# serialport отримує набір шістнадцяткових чисел Як C# SerialPort отримує набір шістнадцяткових чисел і як слід писати програму? Найкраща відповідь System.IO.Ports.SerialPort sp = новий System.IO.Ports.SerialPort("COM1"); int buffersize = 6; Розмір шістнадцяткового числа (скажімо, 6 байт) Byte[] buffer = новий байт[buffersize]; Створіть буфер сп. 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 у PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Потім використовується послідовне ім'я порту comName для отримання об'єкта операції. Ви можете відкрити цей послідовний порт:
System.IO.Ports.SerialPort com = новий System.IO.Ports.SerialPort(comName); com. Відкрито();
Дані потім можна записувати на послідовний порт
Передача даних на послідовний порт: com. WriteLine(this.textBox1.Text); Також можна писати байтові масиви com. Write(bArray,0,5); Він стосується 5 байтів, що починаються з 0, які записують масив байтів bArray
Дані також можуть бути прийняті: com. ReadLine() Також можливо читати байти com. ReadByte();
Нарешті, він закривається: com. Близько();
Також конвертуйте шістнадцятковий рядок у байт байт b = Convert.ToByte("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 у PC. Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
Потім використовується послідовне ім'я порту comName для отримання об'єкта операції. Ви можете відкрити цей послідовний порт:
System.IO.Ports.SerialPort com = новий System.IO.Ports.SerialPort(comName); com. Відкрито();
Дані потім можна записувати на послідовний порт
Передача даних на послідовний порт: com. WriteLine(this.textBox1.Text); Також можна писати байтові масиви com. Write(bArray,0,5); Він стосується 5 байтів, що починаються з 0, які записують масив байтів bArray
Дані також можуть бути прийняті: com. ReadLine() Також можливо читати байти com. ReadByte();
Нарешті, він закривається: com. Близько();
Також конвертуйте шістнадцятковий рядок у байт байт b = Convert.ToByte("1A",16); |