加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从字符串转换为字节奇怪的行为

发布时间:2020-12-16 00:02:39 所属栏目:百科 来源:网络整理
导读:我有这样的字符串“0100110011001”我想将它转换为字节数组,使得数组包含零和一个问题,转换后数组包含49,48我不是为什么我尝试了很多编码,例如我使用的下面的代码,并更改了编码类型 System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); by
我有这样的字符串“0100110011001”我想将它转换为字节数组,使得数组包含零和一个问题,转换后数组包含49,48我不是为什么我尝试了很多编码,例如我使用的下面的代码,并更改了编码类型

System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            byte result = encoding.GetBytes(str);

任何想法为什么会发生,以及如何实现我想要的输出

解决方法

48是0的ASCII代码,49是1的ASCII代码.有许多方法可以执行此字符串的转换,但这应该足以让您自己管理.祝好运 :)

可能的方法:

public static class StringExtensions
    {
        public static byte[] ToByteArray(this string str)
        {
            char[] arr = str.ToCharArray();
            byte[] byteArr = new byte[arr.Length];

            for (int i=0; i<arr.Length; ++i)
            {
                switch (arr[i])
                {
                    case '0': byteArr[i] = 0; break;
                    case '1': byteArr[i] = 1; break;
                    default: throw new Exception(arr[i]+" is not 0 or 1.");
                }
            }

            return byteArr;
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读