首页 > 解决方案 > 获取 ASCII 符号的二进制表示 (C#)

问题描述

很抱歉问这样的问题,但我真的被困住了。我有这种从文件中读取数据的方法:

public void ReadFromFile()
{
    string fileName = @"my .txt file path";
    StreamReader sr;
    List<char> encoded = new List<char>();
    List<byte> converted = new List<byte>();
    using (StreamReader sr = new StreamReader(fileName))
    {
        string line = sr.ReadToEnd();
        string[] lines = line.Split('\n');  

        foreach (var v in lines[2])
        {
            encoded.Add(v);   // just get data I need
        }
    }           }                                                                                      

现在在编码中我有F@符号。我想获得 01000110 (F 表示)和 01000000 (@ 表示)我试图将每个项目转换List<char> encoded为字节然后使用Convert.ToString(value, 2)

但这不是一个好主意,因为有一个错误“对于无符号字节而言,值要么太大要么太小”。

在输出文件中我有这样的东西:

s,01;w,000;e,1;t,001; // 字符字典及其代码

6 // 零的数量

F@ // 编码字符串

所以我想做的就是把这个东西解码成输入字符串(也就是'sweet')。为此,我需要将 F@ 解码为 0100011001000000

标签: c#binaryasciirepresentation

解决方案


推荐阅读