c# byte[] 到string

我记得有个函数可以将byte[]输出的不知道是什么谁告诉我一下例子byte[]b=newbyte[]{0x1f,0x1e,0xcc};用了一个函数函数.toString(... 我记得有个函数可以将byte[]输出的 不知道是什么 谁告诉我一下

例子
byte[] b=new byte[]{0x1f,0x1e,0xcc};
用了一个函数 函数.toString(b);
最后输出的是:1f-1e-cc
这个函数是什么函数
但 好像不是 Convert.ToString(b) Convert.ToString(b)输出的是System.Byte[]
展开
 我来答
yaobing0687
推荐于2016-08-12 · TA获得超过988个赞
知道小有建树答主
回答量:1309
采纳率:0%
帮助的人:903万
展开全部

其实可以自己写

0x表示是16进制,后面的就是16进制的数字

1f=31;1e=30;cc=204;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        string From10To16(int x) 

        {

            List<string> lss = new List<string>();

            while (x >= 16)

            {

                string y = (x % 16).ToString();

                switch (y) 

                {

                    case "10": y = "a"; break;

                    case "11": y = "b"; break;

                    case "12": y = "c"; break;

                    case "13": y = "d"; break;

                    case "14": y = "e"; break;

                    case "15": y = "f"; break;

                }

                lss.Add(y);

                x = x / 16;

            }

            string z = x.ToString();

            switch (x.ToString())

            {

                case "10": z = "a"; break;

                case "11": z = "b"; break;

                case "12": z = "c"; break;

                case "13": z = "d"; break;

                case "14": z = "e"; break;

                case "15": z = "f"; break;

            }

            lss.Add(z);

            string result = "";

            for (int i =  lss.Count-1; i >=0; i--) 

            {

                result+=lss[i];

            }

            return result;

        }

        private void Form1_Load(object sender, EventArgs e)

        {

           string x="";

            byte[] b = new byte[] { 0x1f, 0x1e, 0xcc };

            for (int i = 0; i < b.Length; i++) 

            {

                short c= Convert.ToInt16(b[i]);

                x += From10To16(c) + "-";

            }

            if (MessageBox.Show(x.TrimEnd('-')) == DialogResult.OK) { this.Close(); };

        }

    }

}

tk36811677db69
2010-08-09 · TA获得超过1254个赞
知道小有建树答主
回答量:442
采纳率:89%
帮助的人:113万
展开全部
简单的方法:
System.Text.Encoding.Default.GetString(byteArray)
System.Text.Encoding.ASCII.GetString(byteArray)
System.Text.Encoding.UTF8.GetString(byteArray);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leon382
2010-08-09 · TA获得超过1064个赞
知道小有建树答主
回答量:1744
采纳率:0%
帮助的人:983万
展开全部
using System;

using System.Text;

将一个包含ASCII编码字符的Byte数组转化为一个完整的String
public static string FromASCIIByteArray(byte[] characters)

{

ASCIIEncoding encoding = new ASCIIEncoding( );

string constructedString = encoding.GetString(characters);

return (constructedString);

}

将一个包含Unicode编码字符的Byte数组转化为一个完整的String:
public static string FromUnicodeByteArray(byte[] characters)

{

UnicodeEncoding encoding = new UnicodeEncoding( );

string constructedString = encoding.GetString(characters);

return (constructedString);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackyc23
2010-08-09 · TA获得超过523个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:393万
展开全部
我们现在做的项目中有用到16进制String与Byte[]之间的互转,经过测试,下面这种方法是我们自己知道的几种方法中转换速度最快的
public static string HexStr2(byte[] data)
{
char[] lookup = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int i = 0, p = 0, l = data.Length;
char[] c = new char[l * 2];
byte d;
while (i < l)
{
d = data[i++];
c[p++] = lookup[d / 0x10];
c[p++] = lookup[d % 0x10];
}
return new string(c, 0, c.Length);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式