C# 2, 10, 16 и 16 и техните ASCII кодове --------//Конвертиране на различни типове символи в C# за серийна портова комуникация------------
Разбиране на дължината на знака string s = "Аз съм 2 войници"; int len = s.Дължина; 6 героя byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr. Дължина; 11 байта
Няма смисъл да се преобразува десетична в низ, и трябва да се конвертира в съответния ASCII код int t1 = 81; Струна s1 = T1. ToString(); Това десетично преобразуване съответства на ASCII символите, за да има смисъл. s1 = (((char)t1). ToString();
Шестнадесетичен към струн: Това няма смисъл. Това е Tostring. int intAB = 0x16; s1 = intAB.ToString(); Шестнадесетични към ASCII символи: байт babb = 0x45; String Ass = ((Char)Babb). 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 = нов Byte[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 00 FF E1 00 05 00 0D 0A" Как мога да конвертирам горния низ числово, така че компютърният сериен порт да знае, че изпратиният от мен низ е шестнадесетичен? Допълнение с въпроси: Кой има такъв примерен код, моля, помогнете ми, аз съм хардуерен производител, не съм запознат със софтуер, надявам се майсторът да даде подробен код, благодаря! Питател: daishuanqing - Стажант ниво 1 Най-добрият отговор Добавете референция: Microsoft.VisualBasic (е C# код, но трябва да бъде рефериран.) )
Прегледайте SerialPortNames със следното, за да получите всички серийни портове Microsoft.VisualBasic.Devices.Computer pc = новият Microsoft.VisualBasic.Devices.Computer(); Foreach (String S в PC. 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); Могат да се пишат и байтови масиви com. Write(bArray,0,5); Той се отнася до 5-те байта, започващи от 0, които записват байтовия масив bArray
Данните могат да бъдат приети също: com. ReadLine() Възможно е също да се четат байтове com. ReadByte();
Накрая тя е затворена: com. Close();
Също така, конвертирайте шестнадесетичния низ в байт байт 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 00 FF E1 00 05 00 0D 0A" Как мога да конвертирам горния низ числово, така че компютърният сериен порт да знае, че изпратиният от мен низ е шестнадесетичен? Допълнение с въпроси: Кой има такъв примерен код, моля, помогнете ми, аз съм хардуерен производител, не съм запознат със софтуер, надявам се майсторът да даде подробен код, благодаря! Питател: daishuanqing - Стажант ниво 1 Най-добрият отговор Добавете референция: Microsoft.VisualBasic (е C# код, но трябва да бъде рефериран.) )
Прегледайте SerialPortNames със следното, за да получите всички серийни портове Microsoft.VisualBasic.Devices.Computer pc = новият Microsoft.VisualBasic.Devices.Computer(); Foreach (String S в PC. 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); Могат да се пишат и байтови масиви com. Write(bArray,0,5); Той се отнася до 5-те байта, започващи от 0, които записват байтовия масив bArray
Данните могат да бъдат приети също: com. ReadLine() Възможно е също да се четат байтове com. ReadByte();
Накрая тя е затворена: com. Close();
Също така, конвертирайте шестнадесетичния низ в байт байт b = Convert.ToByte("1A",16); |