Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Ascii字符串转换为位流_C#_Bit Manipulation_Microcontroller_8051 - Fatal编程技术网

C# 将Ascii字符串转换为位流

C# 将Ascii字符串转换为位流,c#,bit-manipulation,microcontroller,8051,C#,Bit Manipulation,Microcontroller,8051,我正在做一个项目,从8051MC引脚上的一些开关和按钮获取数据。现在我必须将端口引脚上的数据串行传输到PC。在PC端,我使用串行端口类在C#sharp.net应用程序中接收数据。现在的问题是,我希望在C sharp应用程序中接收的数据是位字符串的形式,而不是Ascii 有人能指导我如何实现吗?类似的事情吗 byte b = 23; var str = Convert.ToString(b, 2).PadLeft(8,'0'); 字符通常以双字节的形式存储在C#中。因此,对于每16位,将二进制文

我正在做一个项目,从8051MC引脚上的一些开关和按钮获取数据。现在我必须将端口引脚上的数据串行传输到PC。在PC端,我使用串行端口类在C#sharp.net应用程序中接收数据。现在的问题是,我希望在C sharp应用程序中接收的数据是位字符串的形式,而不是Ascii

有人能指导我如何实现吗?

类似的事情吗

byte b = 23;
var str = Convert.ToString(b, 2).PadLeft(8,'0');

字符通常以双字节的形式存储在C#中。因此,对于每16位,将二进制文件集转换为char类型

char c = (char)myBinary;
编辑:这当然取决于项目分配给每个字符的位数。它很可能是一个单字节。如果是这样的话,你需要查看下面的链接以了解角色结构


Ref:

您可以先向我们展示接受数据、样本输入和预期输出的代码。@Ilia问题是,端口上显然有一些1和0的组合。当我从端口获取8位数据的组合并将其传输到PC时,我会得到一些随机符号。相反,我希望它与8051端口上的组合位字符串完全相同,即组合8位。我从8051微控制器串行接收数据的代码是:-private void serialPortRead_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e){try{Rxstring=serialPortRead.ReadExisting();/*Rxstring具有字符串数据类型*/this.Invoke(new EventHandler(DisplayText));}catch(System.TimeoutException){}}private void DisplayText(object s,EventArgs e){ReadTextBox.AppendText(Rxstring);}