C#:对Int32数据类型直接增加位测试扩展方法
2011-08-09 14:32
639 查看
在C#中,微软没有对Int32数据类型直接提供位测试方法,而是别出心裁,弄了个BitVector32结构。而BitVector32使用掩码作为下标来获取位标志状态,难免会让一些人意识错乱。下面,我通过C#的扩展方法,直接对Int32数据类型增加位测试方法。
源代码:
调用示例:
源代码:
using System; namespace Splash { public static class BitOperation { /// <summary> /// Bit位测试 /// </summary> /// <param name="n">要测试的整数</param> /// <param name="bit">要测试的Bit位序号</param> /// <returns> /// true:该Bit位为1 /// false:该Bit为0 /// </returns> public static Boolean BitTest(this Int32 n, Int32 bit) { if ((n & (1 << bit)) != 0) { return true; } else { return false; } } /// <summary> /// Bit位设置 /// </summary> /// <param name="n">要设置的整数</param> /// <param name="bit">要设置的Bit位序号</param> public static Int32 BitSet(this Int32 n, Int32 bit) { return n | (1 << bit); } } }
调用示例:
static void BitOperation() { // 扩展方法测试 Int32 n = 0; n = n.BitSet(0); // 设置Bit0 n = n.BitSet(2); // 设置Bit2 Console.WriteLine(n); Console.WriteLine("Bit0 = " + n.BitTest(0)); // 测试Bit0 Console.WriteLine("Bit2 = " + n.BitTest(2)); // 测试Bit2 // BitVector32对比 BitVector32 BV = new BitVector32(n); Console.WriteLine(BV.Data); Console.WriteLine("Bit0 = " + BV[1 << 0]); // 测试Bit0 Console.WriteLine("Bit2 = " + BV[1 << 2]); // 测试Bit2 }
相关文章推荐
- 采用扩展方法实现数组中数据类型转换(c#)
- DBHelper,ADO直接操作数据库,扩展DataTable操作数据裤的方法
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- C#类型扩展方法—this参数修饰符
- C#的注释方法与数据类型
- C#原始类型扩展方法—this参数修饰符
- c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法
- C#原始类型扩展方法—this参数修饰符
- [C#]C#学习笔记-索引器,指针类型,隐式类型,扩展方法,分部方法,匿名类型
- 在C#中使用Nullable类型(给整型赋null值的方法) 值类型null直接插入数据库
- C#WinForm 直接导出DataGridView数据到Excel表格的二种方法对比
- Js基本数据类型常用方法扩展(基本数据处理)
- C# 方法中的this参数--.NET3.5类型的扩展方法
- C# TextBox 扩展方法数据验证详细说明
- C# 为类型扩展方法
- C#中实现多继承的方法作者:张宏杰 字体:[增加 减小] 类型:转载
- C#积累(一)——扩展方法就近原则和匿名类型的成员探讨
- c# 解决读取Excel混合文本类型,数据读取失败的解决方法
- js 将json字符串转换为json对象的方法解析 作者: 字体:[增加 减小] 类型:转载 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而J
- c#数据类型转换,与其BYTE,float,double,char类型间的转换方法