- 浏览: 204494 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (231)
- C++学习 (41)
- vc学习 (25)
- vc异常 (4)
- Flex (2)
- Ext (0)
- java学习笔记 (15)
- mysql学习笔记 (1)
- ibatis学习笔记 (7)
- struts1学习笔记 (1)
- hibernate学习笔记 (3)
- javascript学习笔记 (8)
- eclipse快捷键 (2)
- 英语学习 (1)
- cmd (1)
- eclipse 配置 (2)
- 其他 (4)
- JAVASE (34)
- firefox (1)
- linux (8)
- Apache (6)
- cms (22)
- jsuc (10)
- html (3)
- css (1)
- 作图 (2)
- vs2012 (2)
- 编码转换 (12)
- work_unicode (1)
- work_webbrowser (1)
- work_trade_quotes_login (1)
- c#学习 (38)
- wpf学习 (31)
- wpf快速学习 (1)
- VB学习 (1)
- NSIS (4)
- log4cpp (3)
- 学习web (1)
- 经验 (1)
- c_汇编 (1)
最新评论
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数组常用扩展应用一:转换为十六进制字符串
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);
发表评论
-
byte数组直接输出
2016-07-19 11:38 1249byte数组直接输出 BitConverter.ToStrin ... -
wfi:WindowsFormsHost焦点设置
2016-07-05 17:56 580<wfi:WindowsFormsHost> ... -
C#_WPF_WPF用户控件库
2016-04-12 11:37 798新建项目》window桌面》WPF用户控件库 -
DependencyProperty.UnsetValue_WPF涉及到资源的嵌套引用,被引用的资源要定义在引用的资源前面
2015-10-27 15:09 1992错误 1 “{DependencyProperty.Unset ... -
string格式的日期时间字符串转为DateTime类型
2015-08-05 14:22 963string格式的日期时间字符串转为DateTime类型 / ... -
checkbox
2015-07-28 17:18 554private void Chec ... -
自定义DataGrid样式
2015-06-26 22:03 747<ResourceDictionary xmlns=&q ... -
x:Name x:Key Name区别
2015-06-25 15:40 597x:Name x:Key Name区别 1、x:Key 只 ... -
work_代码添加
2015-06-23 17:15 507<UserControl x:Class=" ... -
FindName和VisualTreeHelper
2015-06-19 13:23 756int iCount = this.dataGridCan ... -
理解WPF中的视觉树和逻辑树(转载)
2015-06-19 13:00 586理解WPF中的视觉树和逻辑树 理解WPF中的 ... -
理解WPF中的视觉树和逻辑树(转载)
2015-06-19 12:58 1681理解WPF中的视觉树和逻 ... -
GetEnumerator
2015-06-19 12:39 651IEnumerator enumerator = this ... -
资源文件获取配置
2015-06-18 16:03 369object obj = Application.Curren ... -
Pack URI
2015-06-18 15:41 685主要用来定位 资源文 ... -
wpf学习之ObservableCollection<T>相关知识
2015-04-23 11:10 3305本篇学习了ObservableCollection<T& ... -
C#学习之DateTime
2015-04-23 10:30 450DateTime string.Format("{ ... -
c#学习之TimeSpan
2015-04-23 10:29 7981 DateTime dateNow = DateTime ... -
XML特殊字符和空格 换行 转义符(转)
2015-03-25 16:27 6209XML特殊字符和空格 换行 ... -
C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量(转)
2015-03-25 14:01 1415C#:struct的陷阱:无法修改“xxx”的返回值,因为它不 ...
相关推荐
在C#中,要判断一个Byte数组中是否存在某些连续的数据,可以通过编写自定义的方法来实现。以下将详细解析题目中给出的代码示例,并进一步扩展相关的知识点。 #### 代码解析 首先,观察给出的代码片段,可以发现它...
在C#编程中,处理图像数据时经常需要将图片转换为byte数组,以便于存储到数据库或在网络上传输。反之,从数据库中读取到byte数组后,也需要将其转换回Image对象进行显示或进一步处理。这里我们将详细探讨如何实现C#...
本文将深入探讨如何“拼接byte数组”,以及这一操作在不同场景下的应用。 首先,我们要理解什么是“拼接byte数组”。在编程中,拼接(concatenation)是指将两个或多个数据结构连接在一起形成一个新结构的过程。...
在C#编程中,处理图像数据时,有时需要将图像文件转换为byte数组以便存储在数据库中,或者从数据库中取出byte数组后还原成Image对象进行显示。本实例代码主要涉及两个核心操作:将Image对象转换为byte数组,以及将...
在`SonOfBufferedReader.java`中,可能会扩展`BufferedReader`类来提供自定义的读取字节或字符子数组的功能。 在`testInterface.java`中,可能包含了对这些功能的测试,确保能够正确地从字节数组中获取子数组,并且...
RGB565 和 RGB24 是两种常用的颜色格式。RGB565 主要用于节省存储空间,而 RGB24 提供了更丰富的色彩细节,适用于高质量的图像显示。本文将详细探讨如何使用 C# 将 RGB565 流数据转换为 RGB24 流数据。 #### RGB565...
### C#调用C++ DLL:结构体数组引用的传递及解析使用详解 #### 引言 在跨语言编程环境中,经常会遇到不同编程语言之间进行交互的需求。C#与C++之间的互操作就是一个典型场景。当C#需要调用C++开发的动态链接库...
在C#编程环境中,开发一个二维码生成工具是一个实用且常见的...总结,利用QRCoder.dll在C#中开发二维码生成工具,不仅能够实现基础的二维码生成功能,还可以根据需求进行扩展,增加更多自定义选项,提升应用的实用性。
在C#编程语言中,字节操作(byte operation)是一个重要的概念,特别是在处理二进制数据、网络通信、文件操作和内存优化时。本篇将深入探讨C#中与字节操作相关的知识点,并通过Visual Studio 2012的实例进行讲解。 ...
本文将详细介绍如何使用C#语言实现十六进制表示的AES(高级加密标准)加解密,并涉及字节数组工具类的使用。 AES是一种广泛采用的块密码,它基于替换和置换的原理,提供对数据的强加密。在C#中,可以利用.NET框架...
在C#编程中,图像处理是一项常见的任务,其中包括调整图像的对比度。...这个过程可以扩展到更复杂的图像处理任务,例如亮度调整、色彩平衡等。同时,也可以结合OpenCV、AForge.NET等图像处理库来实现更高级的功能。
### C# 流数据旋转 90 度 图像旋转...综上所述,本文不仅介绍了如何使用 C# 对图像进行旋转的基础知识,还提供了一些关于如何优化性能和扩展功能的思考方向。这对于从事图像处理领域的开发者来说是非常有用的参考资料。
4. **将一个字符串转换为Byte数组** 函数`GetBytes(string values)`使用`System.Text.Encoding.Default.GetBytes()`方法将字符串转换为其对应的字节序列。这在处理字符串编码时非常有用,例如在网络传输或文件读写...
// 捕获到的图像转换为byte数组 byte[] imageData = ...; // 从摄像头获取的数据 using (var memoryStream = new MemoryStream(imageData)) { using (var image = Image.FromStream(memoryStream)) { var bitmap...
数据需要转换为byte数组,以便传输。 6. 网络断开判断:通过检查Socket的状态可以判断网络是否断开。如果Socket关闭或断开,程序可以抛出异常以便处理。 7. 异常处理:在Socket编程中,可能会抛出各种异常,例如...
这通常涉及到将字符串或字节数组转换为32个32位的块,用于填充P盒和S盒。 2. 初始化:使用密钥填充P盒和S盒。这是Blowfish算法的核心部分,因为这个过程决定了算法的唯一性。 3. 数据分块:将要加密或解密的数据...
- **在窗体上显示**:服务器端接收完图片数据后,可以使用System.Drawing命名空间的Image类加载byte数组,然后创建PictureBox控件显示图片。 6. **错误处理**: - **网络阻塞**:在网络通信中,由于各种原因可能...
这段代码首先打开指定路径的文件,然后创建一个与文件长度相等的`byte[]`数组,接着使用`Read`方法填充数组,最后关闭文件流。 2. 使用`File.ReadAllBytes`方法:这是更简洁的方法,它直接读取整个文件到一个`byte...
发送时,将消息内容包装到Byte数组中,然后通过UdpClient发送;接收时,接收到的也是Byte数组,需要解码为字符串或其他形式的数据。 3. **多线程处理**: 为了保证聊天程序的实时性,通常会使用多线程。一个线程...
对于BYTE数组,直接作为参数传递即可。 总结一下,通过C#创建COM组件并在VC++中调用,需要完成以下步骤: 1. 在C#中定义COM接口和实现类,并设置相应的COM特性。 2. 使用VS2005生成并注册COM组件。 3. 在VC++中使用...