常用数据类型与字节数组的转换!

本文详细介绍了如何将16进制字符串转换为字节数组,反之亦然的方法,并解释了整型如何转换为字节数组。包括使用C#中的相关函数和库进行操作。

<1>16进制字符串转byte数组

            string s = "0A-0B-0C-FF";

            string Hexstr = s.Replace("-", "");

            byte[] b = new byte[Hexstr.Length / 2];

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

            {

                b[k] = Convert.ToByte(Hexstr.Substring(k * 2, 2), 16);

            }

 

<2>Byte数组转16进字符串

byte[] b = { 10, 11, 12, 255 };

 string Hexstr=  BitConverter.ToString(b,0);//有“-”间隔

string noSpace = Hexstr.Replace("-", "");//去掉“-

<3>Int型转字节数组

            int a1 = 12;

            int a2 = 256;

            byte[] b1 = BitConverter.GetBytes(a1);

            byte[] b2 = BitConverter.GetBytes(a2);

byte为8位无符号数,Int默认为32位,转的时候先分配4字节空间,然后从低位到高位,按每8位的量往里放,256(10进制)=16个0+00000001+8个0(2进制),所以第八位对应的b2[0]=0,b2[1]=1…….

注: BitConverter.GetBytes();提供各种基础数据流与字节数组的转换,所以参数可以为各种数据类型.

<4>单个字节转int

            byte[] b1 = { 10, 11, 12, 255 };

            byte[] b2 = { 0x0a, 0x0b, 0x0c, 0xff };

            int a1 = Convert.ToInt32(b1[0]);

            int a2 = Convert.ToInt32(b2[0]);

这里可以得到一个重要信息,无论byte初始化时放的什么,在计算机内存中都自动转化为10进制。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值