C# byte数组常用扩展浅析

 


  • C# byte数组常用扩展有哪些呢?C# byte数组常用扩展具体的实现实例是什么呢?那么这里我们就将介绍C# byte数组常用扩展以及实现实例。
  • C# byte数组常用扩展是我们编程中经常会碰到的一些实用性很强的操作,那么C# byte数组常用扩展都有哪些呢?下面将列出并用实例演示常用八种情况。

    C# byte数组常用扩展应用一:转换为十六进制字符串

       
       
    1. public   static   string  ToHex( this   byte  b)  
    2. {  
    3. return  b.ToString( "X2" );  
    4. }  
    5.     
    6. public   static   string  ToHex( this  IEnumerable< byte > bytes)  
    7. {  
    8. var sb =  new  StringBuilder();  
    9. foreach  ( byte  b  in  bytes)  
    10.  sb.Append(b.ToString( "X2" ));  
    11. return  sb.ToString();  
    12.  } 

    第二个扩展返回的十六进制字符串是连着的,一些情况下为了阅读方便会用一个空格分开,处理比较简单,不再给出示例。

    C# byte数组常用扩展应用二:转换为Base64字符串

       
       
    1.   public   static   string  ToBase64String( byte [] bytes)  
    2.  {  
    3. return  Convert.ToBase64String(bytes);  
    4.  } 

    C# byte数组常用扩展应用三:转换为基础数据类型

       
       
    1.   public   static   int  ToInt( this   byte [] value,  int  startIndex)  
    2.  {  
    3. return  BitConverter.ToInt32(value, startIndex);  
    4.  }  
    5.   public   static   long  ToInt64( this   byte [] value,  int  startIndex)  
    6.  {  
    7. return  BitConverter.ToInt64(value, startIndex);  
    8.  } 

    BitConverter类还有很多方法(ToSingle、ToDouble、ToChar...),可以如上进行扩展。

    C# byte数组常用扩展应用四:转换为指定编码的字符串

       
       
    1.   public   static   string  Decode( this   byte [] data, Encoding encoding)  
    2.  {  
    3. return  encoding.GetString(data);  
    4.  } 

    C# byte数组常用扩展应用五:Hash

       
       
    1. //使用指定算法Hash  
    2. public   static   byte [] Hash( this   byte [] data,  string  hashName)  
    3. {  
    4. HashAlgorithm algorithm;  
    5. if  ( string .IsNullOrEmpty(hashName)) algorithm = HashAlgorithm.Create();  
    6. else  algorithm = HashAlgorithm.Create(hashName);  
    7. return  algorithm.ComputeHash(data);  
    8. }  
    9.   //使用默认算法Hash  
    10.   public   static   byte [] Hash( this   byte [] data)  
    11.  {  
    12. return  Hash(data,  null );  

    C# byte数组常用扩展应用六:位运算

       
       
    1. //index从0开始  
    2. //获取取第index是否为1  
    3. public   static   bool  GetBit( this   byte  b,  int  index)  
    4. {  
    5. return  (b & (1 << index)) > 0;  
    6. }  
    7. //将第index位设为1  
    8. public   static   byte  SetBit( this   byte  b,  int  index)  
    9. {  
    10. b |= ( byte )(1 << index);  
    11. return  b;  
    12.  }  
    13.   //将第index位设为0  
    14.   public   static   byte  ClearBit( this   byte  b,  int  index)  
    15. {  
    16. b &= ( byte )((1 << 8) - 1 - (1 << index));  
    17. return  b;  
    18.  }  
    19.   //将第index位取反  
    20.   public   static   byte  ReverseBit( this   byte  b,  int  index)  
    21.  {  
    22. b ^= ( byte )(1 << index);  
    23.    return  b;  
    24.  } 

    C# byte数组常用扩展应用七:保存为文件

       
       
    1.   public   static   void  Save( this   byte [] data,  string  path)  
    2.  {  
    3. File.WriteAllBytes(path, data);  
    4.  } 

    C# byte数组常用扩展应用八:转换为内存流

       
       
    1.   public   static  MemoryStream ToMemoryStream( this   byte [] data)  
    2.  {  
    3. return   new  MemoryStream(data);  
    4.  } 

    C# byte数组常用扩展的八种情况就向你介绍到这里,希望对你了解和学习C# byte数组常用扩展有所帮助

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值