- 浏览: 194146 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (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 1200byte数组直接输出 BitConverter.ToStrin ... -
wfi:WindowsFormsHost焦点设置
2016-07-05 17:56 523<wfi:WindowsFormsHost> ... -
C#_WPF_WPF用户控件库
2016-04-12 11:37 753新建项目》window桌面》WPF用户控件库 -
DependencyProperty.UnsetValue_WPF涉及到资源的嵌套引用,被引用的资源要定义在引用的资源前面
2015-10-27 15:09 1899错误 1 “{DependencyProperty.Unset ... -
string格式的日期时间字符串转为DateTime类型
2015-08-05 14:22 910string格式的日期时间字符串转为DateTime类型 / ... -
checkbox
2015-07-28 17:18 496private void Chec ... -
自定义DataGrid样式
2015-06-26 22:03 697<ResourceDictionary xmlns=&q ... -
x:Name x:Key Name区别
2015-06-25 15:40 551x:Name x:Key Name区别 1、x:Key 只 ... -
work_代码添加
2015-06-23 17:15 466<UserControl x:Class=" ... -
FindName和VisualTreeHelper
2015-06-19 13:23 715int iCount = this.dataGridCan ... -
理解WPF中的视觉树和逻辑树(转载)
2015-06-19 13:00 548理解WPF中的视觉树和逻辑树 理解WPF中的 ... -
理解WPF中的视觉树和逻辑树(转载)
2015-06-19 12:58 1586理解WPF中的视觉树和逻 ... -
GetEnumerator
2015-06-19 12:39 607IEnumerator enumerator = this ... -
资源文件获取配置
2015-06-18 16:03 334object obj = Application.Curren ... -
Pack URI
2015-06-18 15:41 647主要用来定位 资源文 ... -
wpf学习之ObservableCollection<T>相关知识
2015-04-23 11:10 3259本篇学习了ObservableCollection<T& ... -
C#学习之DateTime
2015-04-23 10:30 405DateTime string.Format("{ ... -
c#学习之TimeSpan
2015-04-23 10:29 7251 DateTime dateNow = DateTime ... -
XML特殊字符和空格 换行 转义符(转)
2015-03-25 16:27 6098XML特殊字符和空格 换行 ... -
C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量(转)
2015-03-25 14:01 1328C#:struct的陷阱:无法修改“xxx”的返回值,因为它不 ...
相关推荐
所有代码(类声明和实现)都放在扩展名为 cs 的单一文件中。 看看 C# 中的 Hello World 程序。 复制内容到剪贴板 代码: using System; namespace MyNameSpace { class HelloWorld { static void Main(string[]...
public byte[] ComputeHash(byte[] buffer,int offset,int count) ComputeHash 方法中的参数及说明如表19.1 所示。 表19.1 ComputeHash方法中的参数及说明 参 数 说 明 buffer 要计算其哈希代码的输入 offset 字节...
3.把Byte流上传到指定目录并保存为文件 复制代码 UpLoadFiles 页面专用类 19.时间操作类 DateFormat 返回每月的第一天和最后一天 复制代码 TimeHelper 1.将时间格式化成 年月日 的形式,如果时间为null,返回当前...
3.把Byte流上传到指定目录并保存为文件 复制代码 UpLoadFiles 页面专用类 19.时间操作类 DateFormat 返回每月的第一天和最后一天 复制代码 TimeHelper 1.将时间格式化成 年月日 的形式,如果时间为null,返回当前...
.NET图像数组扩展。 颜色和深度转换。 超薄的非托管结构,可快速处理像素。 教程: // convert to grayscale and flip Bgr < byte>[,] image = ImageIO . LoadColor ( " sample.jpg " ); // IO package Gray < byte...
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time ...
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 12.在下面的例子里 using System; class A { public A() { PrintFields(); } public virtual void PrintFields(){} } ...
C# 2.0语言的改进1067 A.1 概述1067 A.2 泛型1068 A.2.1 泛型集合1068 A.2.2 泛型方法1072 A.3 迭代器1074 A.4 匿名方法1075 A.5 运算符重载1077 A.6 全局命名空间限定符1077 A.7 部分类1078 A.8 Visual Basic XML...
c#中的委托,事件是不是委托? 答:委托就是将方法作为一个参数带入另一个方法叫做委托,事件是一种特殊的委托。 应用程序域? 答:应用程序域可以理解为一种轻量级的进程,起到安全的作用,占用资源小。 Class.for...
6.3.5 把文件内容从Stream对象移动到Byte数组中 175 6.4 MultiView和View服务器控件 175 6.5 Wizard服务器控件 179 6.5.1 定制边栏导航 181 6.5.2 AllowReturn属性 182 6.5.3 使用StepType属性 182 6.5.4 给...