byte[] 解析、转码二三事

本文介绍了byte[]在转换和解析中的常见操作,包括与int、String、image、bitmap及16进制间的转换。强调了处理包含字符串和图片的复合字节数组时,需先按长度截取再进行解析,避免乱码。在TCP/IP接口中接收数据时,需要注意数据完整性,根据预知长度来正确解析字节流。
摘要由CSDN通过智能技术生成

 

1.先从byte 说起, byte 范围为 0~255 的整数,这个区间是在 int 范围中,所以 当byte 转为 int 时,则为小范围转大范围,隐式转换可以直接转换,反过来就是显式转换 需要Convert 下

            byte a = 1;
            byte b = 2;
            //正整数+正整数 可以赋值给byte(正常理解应该是,整型转为byte型,特例
            byte c = 1 + 2;
            // byte类型+整数 为 int类型
            byte d = Convert.ToByte(a + 1);
            // byte类型 + byte类型 为 int类型         
            byte e = Convert.ToByte(a + b);

                   

            //将int32转换为字节数组,防止数据丢失,如右图

            byte[] bytes = BitConverter.GetBytes(258);

            //此外Byte[] 与 String 转换          

          byte[] bts = System.Text.Encoding.Default.GetBytes(str);
          string str = System.Text.Encoding.Default.GetString(bts);
                  

2.对于bytes数组来说,其实也没啥太大的差别,记住一些常用的操作即可,比如,合并,截取,拼接

            byte[] bts1 = new byte[9];
            bts1[0] = 10;
            bts1[1] = 12;

            byte[] bts2 = new byte[6];
            bts2[0] = 14;
            bts2[1] = 15;
            bts2[2] = 16;

            //累加,值为 10,12,0,0,0,0,0,0,0,14,15,16,0,0,0
            bts1 = bts1.Concat(bts2).ToArray();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值