C#学习日记 BitArray BitVector32
来源:互联网 发布:手机淘宝首页热点 编辑:程序博客网 时间:2024/05/21 15:06
BitArray类可以重新设置大小,事先不知道大小的可以用它,它可以包含很多位。它是引用类型的。位里存储的是bool类型,有Not Or And Xor 方法。
using System;using System.Collections;namespace Sample{public class MainEntryPoint{static int Main(string[] args){var bits1 = new BitArray(8);bits1.SetAll(true);bits1.Set(1, false);bits1[5] = false;bits1[7] = false;Console.Write("initialized: ");DisplayBits(bits1);Console.WriteLine();Console.Write("not ");DisplayBits(bits1);bits1.Not();Console.Write(" = ");DisplayBits(bits1);Console.WriteLine();var bits2 = new BitArray(bits1);bits2[0] = true;bits2[1] = false;bits2[4] = true;DisplayBits(bits1);Console.Write(" or ");DisplayBits(bits2);Console.Write(" = ");bits1.Or(bits2);DisplayBits(bits1);Console.WriteLine();DisplayBits(bits2);Console.Write(" and ");DisplayBits(bits1);Console.Write(" = ");bits2.And(bits1);DisplayBits(bits2);Console.WriteLine();DisplayBits(bits1);Console.Write(" xor ");DisplayBits(bits2);Console.Write(" = ");bits1.Xor(bits2);DisplayBits(bits1);return 0;}static void DisplayBits(BitArray bits){foreach(bool bit in bits){Console.Write(bit ? 1: 0);}}}}
BitVector结构是基于栈的,速度非常快,只能存储32位,存在一个整数里。section能选择片段的位置长度。
using System;using System.Collections.Specialized;using System.Text;namespace Sample{public class MainEntryPoint{static int Main(string[] args){int received = 0x79abcdef;BitVector32 bits = new BitVector32(received);BitVector32.Section sectionA = BitVector32.CreateSection(0xfff);BitVector32.Section sectionB = BitVector32.CreateSection(0xff, sectionA);BitVector32.Section sectionC = BitVector32.CreateSection(0x7, sectionB);BitVector32.Section sectionD = BitVector32.CreateSection(0x7, sectionC);BitVector32.Section sectionE = BitVector32.CreateSection(0x3, sectionD);Console.WriteLine("SectionA: {0}",IntToBinaryString(bits[sectionA], true));Console.WriteLine("SectionB: {0}",IntToBinaryString(bits[sectionB], true));Console.WriteLine("SectionC: {0}",IntToBinaryString(bits[sectionC], true));Console.WriteLine("SectionD: {0}",IntToBinaryString(bits[sectionD], true));Console.WriteLine("SectionE: {0}",IntToBinaryString(bits[sectionE], true));return 0;}static string IntToBinaryString(int bits, bool removeTrailingZero){var sb =new StringBuilder(32);for(int i = 0 ; i < 32; i++){if((bits & 0x80000000) != 0){sb.Append("1");}else{sb.Append("0");}bits = bits << 1;}string s = sb.ToString();if(removeTrailingZero){return s.TrimStart('0');}else{return s;}}}}
0 0
- C#学习日记 BitArray BitVector32
- C# BitArray
- C# BitArray
- C#数据结构和算法学习系列八----BitArray类
- C# BitArray 实例
- C# 点阵列(BitArray)
- C#梳理【BitArray点阵列】
- C#中的位操作:BitVector32结构
- c# 工作学习日记
- C#学习日记
- C#学习日记1
- C#学习日记 链表
- C#学习日记 StringBuilder
- C#学习日记 字典
- C#学习日记 指针
- 关于C#中BitVector32的那么点事儿
- C#查找判断素数(埃拉托斯特尼筛法C#实现)BitArray
- c# 委托的学习日记
- 内核的启动流程
- Digit Counting UVA
- 2016年上半年信息系统项目管理师真题之上午题小虎趣味解答第11-15题
- UML——Use Case Diagram(用例图)
- Java源码之Integer类中的方法的底层实现(1)
- C#学习日记 BitArray BitVector32
- Master-Mind Hints UVA
- Java编程思想 第八章读书笔记-多态
- 你真的了解volatile关键字吗?
- Ueditor
- C语言与C++的比较
- android学习(一) 在运行时为 Activity 添加Fragment
- Puzzle UVA
- leetcode