• c#数据结构(六)


    BiteArray
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    
    namespace BitArray类
    {
        class Program
        {
            static void Main(string[] args)
            {
              
            }
            /*
             * 埃拉托斯尼筛选法
             * 求素数
             */
            public void GenPrimes(int[] arr)
            {
                for(int outer=2;outer<arr.GetUpperBound(0);outer++)
                    for(int inner=outer+1;inner<=arr.GetUpperBound(0);inner++)
                    {
                        if (arr[inner] == 1)
                            if (arr[inner] == 1)
                                arr[inner] = 0;
                    }
            }
            /// <summary>
            /// 显示素数
            /// </summary>
            /// <param name="arr"></param>
            public void ShowPrimes(int[] arr)
            {
                for (int i = 2; i <= arr.GetUpperBound(0); i++)
                {
                    if (arr[i] == 1)
                        Console.WriteLine(i+"素数!");
                }
            }
    
            /*
             * BitArray类
             * 初始化
             */
            BitArray BitSet = new BitArray(32);
            /*这个bitarray的32位都被设为true*/
            BitArray BitSet = new BitArray(32, true);
            
            /*初始化赋值操作*/
            byte[] ByteSet = new byte[] { 4,5,6,7,5,3,2,8};
            BitArray BitSet = new BitArray(ByteSet);
            /*
             * 如果bitarray中有byte值,那么当循环遍历数组的时候每个byte值的每一位都
             * 将显示出来。下面这个简单的程序段就循环遍历了byte值的bitArray
             */
            byte[] ByteSet = new byte[] { 1, 2, 3, 4, 5 };
            BitArray BitSet = new BitArray(ByteSet);
            for(int bits=0;bits<=BitSet.Count-1;bits++)
            {
             Console.Write(BitSet.Get(bits)+"");
            }
        /*
         * bitArray类用来存储位的集合,尽管位通常会用0,1来表示,但是bitarray类会把这些数值替换为true(1)
         * 或者False(0)值的形式存储起来,bitArray在需要存储一组boolean行数值的时候是很有用的,在需要处理位时
         * 它甚至更加有用,这是因为人们可以很容易的在位值和boolean值之间进行前后移动
         */
        }
    }
    BitArray类
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Collections;
    
    namespace BitArray类
    {
        public partial class 按位运算符运算 : Form
        {
            public 按位运算符运算()
            {
                InitializeComponent();
            }
    
            private void btnDisplay_Click(object sender, EventArgs e)
            {
                int integer1 = int.Parse(textBox1.Text);
                int integer2 = int.Parse(textBox2.Text);
                label3.Text = ConvertBits(integer1).ToString();
                label4.Text = ConvertBits(integer2).ToString();
    
            }
    
           /// <summary>
           /// 10进制向2进制8进制的转换
           /// </summary>
           /// <param name="jishu">进制数</param>
           /// <param name="convert">要转换的数</param>
            public void ConvertBits(int jishu, int convert)
            {
                //先进先出
                Stack Digits = new Stack();
                do
                {
                    Digits.Push(convert % jishu);
                    convert/jishu;
    
                } while (convert != 0);
                
                while (Digits.Count > 0)
                {
                   Console.WriteLine(Digits.Pop());
                }
            }
    
            /// <summary>
            /// 返回convert的2进制字符串
            /// </summary>
            /// <param name="convert">要转换的数</param>
            /// <returns>convert的2进制字符串</returns>
            public StringBuilder ConvertBits(int convert)
            {
                int dispMask = 1 << 31;
                StringBuilder bitBuffer = new StringBuilder(35);
                for (int i = 1; i <= 32; i++)
                {
                    if ((convert && dispMask) == 0)
                    {
                        bitBuffer.Append("0");
    
                    }
                    else
                        bitBuffer.Append("1");
                    convert <<= 1;
                    if (i % 8 == 0)
                        bitBuffer.Append(" ");
                }
                return bitBuffer;
            }
    
            private void BuildSieve(BitArray bits)
            {
                string primes;
                for (int i = 0; i <= bits.Count - 1; i++)
                {
                    bits.Set(i,1);
    
                }
                int lastBit = Int32.Parse(Math.Sqrt(bits.Count));
                for (int i = 2; i <= lastBit - 1; i++)
                {
                    if (bits.Get(i))
                        for (int j = 2 * i; j < bits.Count; j++)
                            bits.Set(j, 0);
                }
                int counter = 0;
                for (int i = 1; i < bits.Count - 1; i++)
                {
                    if (bits.Get(i))
                    {
                        primes += i.ToString();
                        if (counter % 7 == 0)
                            primes += "\n";
                        else
                            primes += "\n";
                    }
                }
            }
            private void 按位运算符运算_Load(object sender, EventArgs e)
            {
    
            }
    
            private void btnclear_Click(object sender, EventArgs e)
            {
                foreach (Control item in this.Controls)
                {
                    if (item as Button)
                    {
                        item.Enabled = false;
                    }
                }
            }
        }
    }
  • 相关阅读:
    Laravel 5.1 简单学习
    Laravel5.1 报错:控制器不存在
    集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
    UDS(ISO14229-2006) 汉译(No.7 应用层协议)
    Freescale 车身控制模块(BCM) 解决方案
    汽车控制器LIMPHOME电路设计
    区分整流二极管和稳压二极管
    耦合电容和滤波电容的区别
    二极管钳位电路
    开关二极管工作原理
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/2790285.html
Copyright © 2020-2023  润新知