`

C# byte数组常用扩展(转载)

c# 
阅读更多
C# byte数组常用扩展(转载)

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

public static string ToHex(this byte b) 

return b.ToString("X2"); 

   
public static string ToHex(this IEnumerable<byte> bytes) 

var sb = new StringBuilder(); 
foreach (byte b in bytes) 
sb.Append(b.ToString("X2")); 
return sb.ToString(); 
}
    第二个扩展返回的十六进制字符串是连着的,一些情况下为了阅读方便会用一个空格分开,处理比较简单,不再给出示例。

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

public static string ToBase64String(byte[] bytes) 

return Convert.ToBase64String(bytes); 
}
    C# byte数组常用扩展应用三:转换为基础数据类型

public static int ToInt(this byte[] value, int startIndex) 

return BitConverter.ToInt32(value, startIndex); 

public static long ToInt64(this byte[] value, int startIndex) 

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

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

public static string Decode(this byte[] data, Encoding encoding) 

return encoding.GetString(data); 
}
    C# byte数组常用扩展应用五:Hash

//使用指定算法Hash 
public static byte[] Hash(this byte[] data, string hashName) 

HashAlgorithm algorithm; 
if (string.IsNullOrEmpty(hashName)) algorithm = HashAlgorithm.Create(); 
else algorithm = HashAlgorithm.Create(hashName); 
return algorithm.ComputeHash(data); 

//使用默认算法Hash 
public static byte[] Hash(this byte[] data) 

return Hash(data, null); 
}
    C# byte数组常用扩展应用六:位运算

//index从0开始 
//获取取第index是否为1 
public static bool GetBit(this byte b, int index) 

return (b & (1 << index)) > 0; 

//将第index位设为1 
public static byte SetBit(this byte b, int index) 

b |= (byte)(1 << index); 
return b; 

//将第index位设为0 
public static byte ClearBit(this byte b, int index) 

b &= (byte)((1 << - 1 - (1 << index)); 
return b; 

//将第index位取反 
public static byte ReverseBit(this byte b, int index) 

b ^= (byte)(1 << index); 
  return b; 
}
    C# byte数组常用扩展应用七:保存为文件

public static void Save(this byte[] data, string path) 

File.WriteAllBytes(path, data); 
}
    C# byte数组常用扩展应用八:转换为内存流

public static MemoryStream ToMemoryStream(this byte[] data) 

return new MemoryStream(data); 
分享到:
评论

相关推荐

    C# 如何判断一个Byte数组中是否存在某些连续的数据).txt

    在C#中,要判断一个Byte数组中是否存在某些连续的数据,可以通过编写自定义的方法来实现。以下将详细解析题目中给出的代码示例,并进一步扩展相关的知识点。 #### 代码解析 首先,观察给出的代码片段,可以发现它...

    C# byte数组与Image相互转换的方法

    在C#编程中,处理图像数据时经常需要将图片转换为byte数组,以便于存储到数据库或在网络上传输。反之,从数据库中读取到byte数组后,也需要将其转换回Image对象进行显示或进一步处理。这里我们将详细探讨如何实现C#...

    拼接byte数组

    本文将深入探讨如何“拼接byte数组”,以及这一操作在不同场景下的应用。 首先,我们要理解什么是“拼接byte数组”。在编程中,拼接(concatenation)是指将两个或多个数据结构连接在一起形成一个新结构的过程。...

    C#byte数组与Image的相互转换实例代码

    在C#编程中,处理图像数据时,有时需要将图像文件转换为byte数组以便存储在数据库中,或者从数据库中取出byte数组后还原成Image对象进行显示。本实例代码主要涉及两个核心操作:将Image对象转换为byte数组,以及将...

    取指定字节数组中的子数组 一个很好类例子

    在`SonOfBufferedReader.java`中,可能会扩展`BufferedReader`类来提供自定义的读取字节或字符子数组的功能。 在`testInterface.java`中,可能包含了对这些功能的测试,确保能够正确地从字节数组中获取子数组,并且...

    c# rgb565 转 rgb24

    RGB565 和 RGB24 是两种常用的颜色格式。RGB565 主要用于节省存储空间,而 RGB24 提供了更丰富的色彩细节,适用于高质量的图像显示。本文将详细探讨如何使用 C# 将 RGB565 流数据转换为 RGB24 流数据。 #### RGB565...

    C#调用C++ Dll关于结构体数组引用的传递及解析使用的展示代码

    ### C#调用C++ DLL:结构体数组引用的传递及解析使用详解 #### 引言 在跨语言编程环境中,经常会遇到不同编程语言之间进行交互的需求。C#与C++之间的互操作就是一个典型场景。当C#需要调用C++开发的动态链接库...

    C#引用QRCoder.dll文件开发二维码生成工具

    在C#编程环境中,开发一个二维码生成工具是一个实用且常见的...总结,利用QRCoder.dll在C#中开发二维码生成工具,不仅能够实现基础的二维码生成功能,还可以根据需求进行扩展,增加更多自定义选项,提升应用的实用性。

    C#, byte operation

    在C#编程语言中,字节操作(byte operation)是一个重要的概念,特别是在处理二进制数据、网络通信、文件操作和内存优化时。本篇将深入探讨C#中与字节操作相关的知识点,并通过Visual Studio 2012的实例进行讲解。 ...

    C#实现十六进制AES的加解密,字节数组工具类

    本文将详细介绍如何使用C#语言实现十六进制表示的AES(高级加密标准)加解密,并涉及字节数组工具类的使用。 AES是一种广泛采用的块密码,它基于替换和置换的原理,提供对数据的强加密。在C#中,可以利用.NET框架...

    C#图像对比度调整的方法

    在C#编程中,图像处理是一项常见的任务,其中包括调整图像的对比度。...这个过程可以扩展到更复杂的图像处理任务,例如亮度调整、色彩平衡等。同时,也可以结合OpenCV、AForge.NET等图像处理库来实现更高级的功能。

    C# 流数据旋转 90度 图像旋转 90度

    ### C# 流数据旋转 90 度 图像旋转...综上所述,本文不仅介绍了如何使用 C# 对图像进行旋转的基础知识,还提供了一些关于如何优化性能和扩展功能的思考方向。这对于从事图像处理领域的开发者来说是非常有用的参考资料。

    C#中Byte转换相关的函数

    4. **将一个字符串转换为Byte数组** 函数`GetBytes(string values)`使用`System.Text.Encoding.Default.GetBytes()`方法将字符串转换为其对应的字节序列。这在处理字符串编码时非常有用,例如在网络传输或文件读写...

    C#调用本地摄像头进行二维码扫描

    // 捕获到的图像转换为byte数组 byte[] imageData = ...; // 从摄像头获取的数据 using (var memoryStream = new MemoryStream(imageData)) { using (var image = Image.FromStream(memoryStream)) { var bitmap...

    C#中用Socket实现判断网络是否断开的实例[参照].pdf

    数据需要转换为byte数组,以便传输。 6. 网络断开判断:通过检查Socket的状态可以判断网络是否断开。如果Socket关闭或断开,程序可以抛出异常以便处理。 7. 异常处理:在Socket编程中,可能会抛出各种异常,例如...

    blowfish算法的C#实现

    这通常涉及到将字符串或字节数组转换为32个32位的块,用于填充P盒和S盒。 2. 初始化:使用密钥填充P盒和S盒。这是Blowfish算法的核心部分,因为这个过程决定了算法的唯一性。 3. 数据分块:将要加密或解密的数据...

    C# TCP 文件传输

    - **在窗体上显示**:服务器端接收完图片数据后,可以使用System.Drawing命名空间的Image类加载byte数组,然后创建PictureBox控件显示图片。 6. **错误处理**: - **网络阻塞**:在网络通信中,由于各种原因可能...

    C#文件2进制流转换

    这段代码首先打开指定路径的文件,然后创建一个与文件长度相等的`byte[]`数组,接着使用`Read`方法填充数组,最后关闭文件流。 2. 使用`File.ReadAllBytes`方法:这是更简洁的方法,它直接读取整个文件到一个`byte...

    C#开发的基于UDP协议的聊天程序

    发送时,将消息内容包装到Byte数组中,然后通过UdpClient发送;接收时,接收到的也是Byte数组,需要解码为字符串或其他形式的数据。 3. **多线程处理**: 为了保证聊天程序的实时性,通常会使用多线程。一个线程...

    VC++调用C#的COM组件

    对于BYTE数组,直接作为参数传递即可。 总结一下,通过C#创建COM组件并在VC++中调用,需要完成以下步骤: 1. 在C#中定义COM接口和实现类,并设置相应的COM特性。 2. 使用VS2005生成并注册COM组件。 3. 在VC++中使用...

Global site tag (gtag.js) - Google Analytics