C# 字节数组截取


 byte[] data = new byte[] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };

Ⅰ.如果截取2位、4位或者8位长度的字节数组,可以分别用 BitConverter.ToInt16、BitConverter.ToInt32、BitConverter.ToInt64截取:

 

从第1位开始截取2个字节则  BitConverter.ToInt16(data,1); 

结果 513 

注释:BitConverter.ToUInt16()的用法,是把两个字节转换为无符号整数

所以☞取出的字节为{1,2}→转化为16进制{01,02}→转为无符号整数,应该倒过来排{02,01}→转为十进制即将{0201}转为十进制→{513}!(请忽略我数组的书写格式!)♓

 

从第2位开始截取4个字节则  BitConverter.ToInt32(data,2); 

结果  84148994  

同⑴理:{2,3,4,5}→{02,03,04,05}→{5040302}→{84148994}!

 

从第3位开始截取8个字节则  BitConverter.ToInt64(data,3); 

结果  723118041428460547 

同⑴理:{3,4,5,6,7,8,9,10}→{03,04,05,06,07,08,09,0A}→{A09080706050403}→{723118041428460547}!

 

Ⅱ.如果截取的位数不规则,则使用Skip().Take().ToArray()

 

从第5位开始(不包含第5位)截取3个字节  data.Skip(5).Take(3).ToArray(); 

结果 {5,6,7} 

 

从第4位开始(不包含第5位)截取到最后 data.Skip(4).ToArray(); 

结果 {4,5,6,7,8,9,10,11,12,12,14,15} 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM