我正在从串行端口使用string messaga = _serialPort.ReadLine();
当我Console.WriteLine(messaga);
随机字符出现在屏幕上,因为二进制数据是非ASCII的逻辑。 我想我正在使用的方法处理数据ascii。 我想要做的是创建一个字符串变种,并为它分配来自端口的二进制原始数据,所以当我console.write这个变种我想看到一个字符串与二进制数据,如1101101110001011010和NOT字符。我该如何管理?C#二进制到字符串
回答
被盗,你的意思是这样吗?
class Utility
{
static readonly string[] BitPatterns ;
static Utility()
{
BitPatterns = new string[256] ;
for (int i = 0 ; i < 256 ; ++i)
{
char[] chars = new char[8] ;
for (byte j = 0 , mask = 0x80 ; mask != 0x00 ; ++j , mask >>= 1)
{
chars[j] = (0 == (i&mask) ? '0' : '1') ;
}
BitPatterns[i] = new string(chars) ;
}
return ;
}
const int BITS_PER_BYTE = 8 ;
public static string ToBinaryRepresentation(byte[] bytes)
{
StringBuilder sb = new StringBuilder(bytes.Length * BITS_PER_BYTE) ;
foreach (byte b in bytes)
{
sb.Append(BitPatterns[b]) ;
}
string instance = sb.ToString() ;
return instance ;
}
}
class Program
{
static void Main()
{
byte[] foo = { 0x00 , 0x01 , 0x02 , 0x03 , } ;
string s = Utility.ToBinaryRepresentation(foo) ;
return ;
}
}
刚才的基准测试。上述代码大约比使用Convert.ToString()
快12倍,如果将校正添加到引脚为0的焊盘上,则速度大约快17倍。
从How do you convert a string to ascii to binary in C#?
foreach (string letter in str.Select(c => Convert.ToString(c, 2)))
{
Console.WriteLine(letter);
}
并称盗窃,其更多的是我认为的引文。 – 2011-06-08 22:28:11
+1盗窃 – 2011-06-08 22:29:39
-1因为不正确。 'Convert.ToString(c,2)'的结果没有用前导零填充到类型的正确宽度(例如'(byte)0x01'的转换产生'“1”'而不是'“00000001” )。 – 2011-06-08 22:52:50
- 1. 字符串到二进制[]
- 2. 十六进制字符串到二进制字符串
- 3. 二进制字符串到十六进制字符串java
- 4. Ruby:十六进制字符串到二进制字符串
- 5. C++:二进制std ::字符串到十进制
- 6. Java |二进制字符串到字节
- 7. Java:字符串到BigInteger到二进制
- 8. XOR两个二进制字符串C++
- 9. Json_encode二进制字符串
- 10. 字符串为二进制
- 11. 二进制字符串
- 12. 二进制字符串到整数
- 13. 字符串到二进制文件
- 14. 二进制字符串到整数
- 15. 二进制搜索树到字符串
- 16. 从字符串到二进制列表
- 17. 二进制字符串到unicode
- 18. Ruby整数到二进制字符串
- 19. 从字符串到二进制文件
- 20. Flex二进制字符串到ByteArray
- 21. 字符串二进制到字符串8位数字在JAVA
- 22. 将二进制字符串转换为十六进制字符串C
- 23. 将二进制字符串转换为十进制c字符串#
- 24. 十六进制到二进制到字符串
- 25. 字符串输入到二进制字符串的方法?
- 26. C++长十六进制字符串转换为二进制
- 27. 将二进制长字符串转换为十六进制c#
- 28. 将二进制字符串转换为二进制文字
- 29. 串联二进制值NVARCHAR字符串
- 30. 字符串写入到二进制文件用C
你有没有显示“字符”的例子? – 2011-06-08 21:55:30
你真的期望它将所有的位转换为10100010等字符串吗? – BugFinder 2011-06-08 21:58:37
我们真的在这里只是为了声望计数吗? – 2011-06-08 22:02:47