C#实现字符串转ASCII码示例及代码

需积分: 50 16 下载量 98 浏览量 更新于2024-09-20 收藏 2KB TXT 举报
在C#编程中,将字符串转换为ASCII码是一项常见的任务,尤其是在处理字符编码或数据存储时。本文档提供了一个简单的示例,展示了如何通过循环遍历字符串中的每个字符,并将其ASCII值转换为二进制形式,最终写入到文本文件中。 首先,我们来看`Main`方法: ```csharp static void Main(string[] args) { string text = "ð"; // 要转换的字符串,这里以一个非ASCII字符为例 string outerBinary = string.Empty; // 用于存放转换后的二进制表示 foreach (char item in text) { int i = item; // 获取字符的ASCII值 outerBinary += DtoB(i); // 将ASCII值调用DtoB函数转换为二进制字符串并累加 } using (StreamWriter ss = new StreamWriter("D:\\test1.txt", true, Encoding.UTF8)) // 创建StreamWriter对象,指定文件路径和编码 { ss.WriteLine(outerBinary); // 将转换结果写入文件 } // Console.WriteLine(outerBinary); // 也可以选择在控制台输出,但这里是直接写入文件 // Console.Read(); // 原代码中还有一个Console.Read(),但在这里并不需要,因为写入文件后通常会结束程序执行 } ``` 接着是`DtoB`方法,这是一个辅助函数,用于将十进制整数`d`转换为二进制字符串: ```csharp public static string DtoB(int d) { string b = ""; // 初始化空字符串,用于存放二进制结果 // 处理小于2的数字,直接转换为字符串 if (d < 2) { b = d.ToString(); } else { int s = 0; // 计算所需位数 int n = d; while (n >= 2) { s++; n /= 2; } int[] m = new int[s]; // 存储二进制位 int i = 0; do { int c = d / 2; m[i++] = d % 2; d = c; } while (c >= 2); b = d.ToString(); // 将剩余的1或0添加到结果字符串 for (int j = m.Length - 1; j >= 0; j--) { b += m[j].ToString(); // 从低位到高位拼接二进制位 } } return b; } ``` 这个方法首先判断输入的整数是否小于2,如果是则直接转换;否则,它会计算出二进制位数,然后通过循环将二进制形式的每一位存入数组,最后逆序拼接成字符串。整个过程确保了ASCII值到二进制的准确转换。 总结来说,这段C#代码提供了将字符串中的每个字符转换为其ASCII值,并以二进制形式写入文件的方法。这对于理解和处理字符编码,或者作为基础技术在其他数据处理场景中十分有用。