C#中字符串转换成二进制流
2015-10-17 17:09
423 查看
在作业中需求是要求把字符串转成0101这样的二进制流,根据ASCII码把每一个字符对应7位二进制,再根据这个二进制0与1进行不同操作,与别的客户进行交互,同时接收方也要把接收到的二进制流转换成对应的字符串获取数据。
方法如下:
字符串转二进制流:
//Char字符转成7位二进制
public string StringToBinary(string ss)
{
byte[] u = Encoding.ASCII.GetBytes(ss);
string binaryNum = string.Empty;
string result = string.Empty;
foreach (byte a in u)
{
binaryNum = Convert.ToString(a, 2);
if (binaryNum.Length < 7)
{
for (int i = 0; i < 7 - binaryNum.Length; i++)
{
binaryNum = '0' + binaryNum;
}
}
result += binaryNum;
}
return result;
}
存储二进制的字符串转成对应的数据
char[] np = namepwd .ToCharArray();//"1000001000000001100010110010".ToCharArray();
string username = "";
string password = "";
bool flag = false;
string a = "";
for (int i = 0; i < np.Length; i++)
{
a += np[i];
if (a.Length % 7 == 0)
{
if (Convert.ToInt32(a, 2) == 0)
{
flag = true;
a = string.Empty;
continue;
}
if (flag )
password += Convert.ToChar(Convert.ToInt32(a,2));
else
username += Convert.ToChar(Convert.ToInt32(a,2));
a = string.Empty;
}
}
方法如下:
字符串转二进制流:
//Char字符转成7位二进制
public string StringToBinary(string ss)
{
byte[] u = Encoding.ASCII.GetBytes(ss);
string binaryNum = string.Empty;
string result = string.Empty;
foreach (byte a in u)
{
binaryNum = Convert.ToString(a, 2);
if (binaryNum.Length < 7)
{
for (int i = 0; i < 7 - binaryNum.Length; i++)
{
binaryNum = '0' + binaryNum;
}
}
result += binaryNum;
}
return result;
}
存储二进制的字符串转成对应的数据
char[] np = namepwd .ToCharArray();//"1000001000000001100010110010".ToCharArray();
string username = "";
string password = "";
bool flag = false;
string a = "";
for (int i = 0; i < np.Length; i++)
{
a += np[i];
if (a.Length % 7 == 0)
{
if (Convert.ToInt32(a, 2) == 0)
{
flag = true;
a = string.Empty;
continue;
}
if (flag )
password += Convert.ToChar(Convert.ToInt32(a,2));
else
username += Convert.ToChar(Convert.ToInt32(a,2));
a = string.Empty;
}
}
相关文章推荐
- (原创)c#学习笔记03--变量和表达式03--变量03--字面值
- (原创)c#学习笔记03--变量和表达式03--变量02--变量的命名
- C#中的 int? int??是什么意思
- c# 复制粘贴窗体
- (原创)c#学习笔记03--变量和表达式03--变量01--简单类型
- C#实现无边框窗体拖动
- (原创)c#学习笔记03--变量和表达式02--C#控制台应用程序的基本结构
- (原创)c#学习笔记03--变量和表达式01--c#的基本语法
- influxDB 0.9 C# 读写类
- C#中 委托和事件的关系
- C# Winform欢迎窗体实现()
- C## 输出Hello world
- c# 计时器的三种使用方法
- SuperSocket入门系列-01
- 一个简单的性能计数器:CodeTimer
- C#实现复杂XML的序列化与反序列化
- 文件和注册表操作(C#)
- C#打印技术(三)
- C#数字图像处理算法学习笔记(一)--C#图像处理的3中方法
- 经验36--C#无名(大事,物...)