C# 如何减小特定格式字符串的大小?
我为我的项目设计了一个2通道的汇编程序。输出为十六进制形式,即15为0F 我正在使用ComPort,要通过应该作为字符串发送的行发送“0F”。 但问题是,我只能在另一端接收1个字节,而C# 如何减小特定格式字符串的大小?,c#,.net,string,hex,byte,C#,.net,String,Hex,Byte,我为我的项目设计了一个2通道的汇编程序。输出为十六进制形式,即15为0F 我正在使用ComPort,要通过应该作为字符串发送的行发送“0F”。 但问题是,我只能在另一端接收1个字节,而sizeOf(“0F”)>1个byte。 在另一端没有解压数据的方法,我需要在我的一端完成所有工作,但我仍然希望在另一端接收“0F”。 我可以这样做吗?如果可以,怎么做 我这样做是为了得到十六进制字符串: String.format("{0:X2}",15); 另外, using System.IO.Ports
sizeOf(“0F”)>1个byte。
在另一端没有解压数据的方法,我需要在我的一端完成所有工作,但我仍然希望在另一端接收“0F”。
我可以这样做吗?如果可以,怎么做
我这样做是为了得到十六进制字符串:
String.format("{0:X2}",15);
另外,
using System.IO.Ports;
private SerialPort comPort = new SerialPort();
comPort.Write("0F");
在接收端,我有一个8位处理器,它有1字节*256个块,即256字节。接收时的“0F”作为2字节接收,不能存储在1字节的单个块中。所以我希望“0F”为1字节。看起来您需要这样的内容:
// create buffer
byte[] buffer = new byte[256];
// put values you need to send to buffer
buffer[0] = 0x0f;
// ... add another bytes if you need...
// send them
var comPort = new SerialPort();
comPort.Write(buffer, 0, 1); // 0 is buffer offset, 1 is number of bytes to write
a) 怎么寄?b) 接收到哪个字节?不确定您的意思。字符串中的每个char
本身是两个字节。如果您只能发送一个字节,可能您只需要:(byte)15
使用System.IO.port;private SerialPort comPort=new SerialPort();复合书写(“0F”);在接收端,我有一个8位处理器,它有1字节*256个块,即256字节。接收时的“0F”作为2字节接收,不能存储在1字节的单个块中。所以我希望“0F”是1字节。如果仍然不清楚,请随时询问,我会澄清…@HenkHolterman plz请参考上面的评论。@JeppeStigNielsen plz请参考上面的评论我使用了您的代码bt唯一的问题是收到的数据是整数形式,即0F作为15接收。0F==15
。没有问题。0F==15 bt我没有任何机制将其改回十六进制。接收端是纯硬件,它只能在0F而不是15上工作。十六进制不是硬件,它是字符串15和0x0F
只是同一字节值的两个符号。它们大约是相同的8位。但是硬件上的编码需要十六进制符号的输入来处理它。