欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#?BitArray(點(diǎn)矩陣)轉(zhuǎn)換成int和string的方法實(shí)現(xiàn)

 更新時(shí)間:2022年05月10日 11:39:44   作者:濤神-DevExpress資深開(kāi)發(fā)者  
BitArray?類(lèi)管理一個(gè)緊湊型的位值數(shù)組,它使用布爾值來(lái)表示,本文主要介紹了C#?BitArray(點(diǎn)矩陣)轉(zhuǎn)換成int和string的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

BitArray的基礎(chǔ)可以看菜鳥(niǎo)編程

BitArray 類(lèi)管理一個(gè)緊湊型的位值數(shù)組,它使用布爾值來(lái)表示,其中 true 表示位是開(kāi)啟的(1),false 表示位是關(guān)閉的(0)。

當(dāng)您需要存儲(chǔ)位,但是事先不知道位數(shù)時(shí),則使用點(diǎn)陣列。您可以使用整型索引從點(diǎn)陣列集合中訪問(wèn)各項(xiàng),索引從零開(kāi)始。

BitArray 類(lèi)的方法和屬性

下表列出了 BitArray 類(lèi)的一些常用的 屬性:

屬性描述
Count獲取 BitArray 中包含的元素個(gè)數(shù)。
IsReadOnly獲取一個(gè)值,表示 BitArray 是否只讀。
Item獲取或設(shè)置 BitArray 中指定位置的位的值。
Length獲取或設(shè)置 BitArray 中的元素個(gè)數(shù)。

下表列出了 BitArray 類(lèi)的一些常用的 方法:

序號(hào)方法名 & 描述
1public BitArray And( BitArray value );
對(duì)當(dāng)前的 BitArray 中的元素和指定的 BitArray 中的相對(duì)應(yīng)的元素執(zhí)行按位與操作。
2public bool Get( int index );
獲取 BitArray 中指定位置的位的值。
3public BitArray Not();
把當(dāng)前的 BitArray 中的位值反轉(zhuǎn),以便設(shè)置為 true 的元素變?yōu)?false,設(shè)置為 false 的元素變?yōu)?true。
4public BitArray Or( BitArray value );
對(duì)當(dāng)前的 BitArray 中的元素和指定的 BitArray 中的相對(duì)應(yīng)的元素執(zhí)行按位或操作。
5public void Set( int index, bool value );
把 BitArray 中指定位置的位設(shè)置為指定的值。
6public void SetAll( bool value );
把 BitArray 中的所有位設(shè)置為指定的值。
7public BitArray Xor( BitArray value );
對(duì)當(dāng)前的 BitArray 中的元素和指定的 BitArray 中的相對(duì)應(yīng)的元素執(zhí)行按位異或操作。

了解了BitArray的大概,我們來(lái)做BitArray和Int和string的轉(zhuǎn)換,

BitArray轉(zhuǎn)成Int方法

/// <summary>
/// 點(diǎn)矩陣轉(zhuǎn)成int
/// </summary>
public static int BitArrayToInt(BitArray bit)
{
    int[] res = new int[1];
    for (int i = 0; i < bit.Count; i++)
    {
        bit.CopyTo(res, 0);
    }
    return res[0];
}

BitArray轉(zhuǎn)成string方法(如果有亂碼,請(qǐng)自行修改編碼)

/// <summary>
/// 點(diǎn)矩陣轉(zhuǎn)換成string
/// </summary>
public static string BitArrayToStr(BitArray ba)
{
    byte[] strArr = new byte[ba.Length / 8];
    for (int i = 0; i < ba.Length / 8; i++)
    {
        for (int index = i * 8, m = 1; index < i * 8 + 8; index++, m *= 2)
        {
            strArr[i] += ba.Get(index) ? (byte)m : (byte)0;
        }
    }
    return Encoding.Default.GetString(strArr);
}

在LinqPad上調(diào)用測(cè)試(Dump是LinqPad的輸出的方法):

void Main()
{
    var bi = new BitArray(new bool[] { true, false, false, false, false, true, false, false });
    bool[] bs = bi.Cast<bool>().ToArray();//直接轉(zhuǎn)成bool數(shù)組,但這個(gè)結(jié)果無(wú)意義
 
    BitArrayToInt(bi).Dump("點(diǎn)矩陣轉(zhuǎn)成int:");//點(diǎn)矩陣轉(zhuǎn)成int
    BitArrayToStr(bi).Dump("點(diǎn)矩陣轉(zhuǎn)成字符串:");//點(diǎn)矩陣轉(zhuǎn)成字符串
 
    //測(cè)試將字符串轉(zhuǎn)成點(diǎn)矩陣再轉(zhuǎn)回字符串
    var str = "濤神";
    //點(diǎn)矩陣只支持bool[]、byte[]、int[],所以字符串需要先轉(zhuǎn)成byte[]
    byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);
    var ba = new BitArray(byteArray);//創(chuàng)建一個(gè)點(diǎn)矩陣
    BitArrayToStr(ba).Dump("將點(diǎn)矩陣轉(zhuǎn)成字符串:");//將點(diǎn)矩陣轉(zhuǎn)成字符串
}

結(jié)果:

 到此這篇關(guān)于C# BitArray(點(diǎn)矩陣)轉(zhuǎn)換成int和string的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# BitArray轉(zhuǎn)換成int和string內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c#異步task示例分享(異步操作)

    c#異步task示例分享(異步操作)

    這篇文章主要介紹了c#異步task示例(異步操作),需要的朋友可以參考下
    2014-03-03
  • C#實(shí)現(xiàn)簡(jiǎn)單的二叉查找樹(shù)

    C#實(shí)現(xiàn)簡(jiǎn)單的二叉查找樹(shù)

    這篇文章介紹了C#實(shí)現(xiàn)二叉查找樹(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果

    Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果

    這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 詳解C#如何實(shí)現(xiàn)樹(shù)形圖列表

    詳解C#如何實(shí)現(xiàn)樹(shù)形圖列表

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)樹(shù)形圖列表,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C#生成注冊(cè)碼的實(shí)例代碼

    C#生成注冊(cè)碼的實(shí)例代碼

    C#生成注冊(cè)碼的實(shí)例代碼,下面是一個(gè)小例子,需要的朋友可以參考一下
    2013-03-03
  • C#動(dòng)態(tài)編譯并執(zhí)行字符串樣例

    C#動(dòng)態(tài)編譯并執(zhí)行字符串樣例

    這篇文章主要為大家詳細(xì)介紹了C#動(dòng)態(tài)編譯并執(zhí)行字符串樣例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#中多態(tài)現(xiàn)象和多態(tài)的實(shí)現(xiàn)方法

    C#中多態(tài)現(xiàn)象和多態(tài)的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#中多態(tài)現(xiàn)象和多態(tài)的實(shí)現(xiàn)方法,較為詳細(xì)的分析了多態(tài)的原理與C#實(shí)現(xiàn)多態(tài)的方法,以及相關(guān)的注意事項(xiàng),需要的朋友可以參考下
    2015-05-05
  • 深入理解C#表達(dá)式樹(shù)的使用

    深入理解C#表達(dá)式樹(shù)的使用

    表達(dá)式樹(shù)是C#編程語(yǔ)言中一個(gè)強(qiáng)大的特性,本文將深入探討表達(dá)式樹(shù)的基本概念、創(chuàng)建方法、節(jié)點(diǎn)類(lèi)型、遍歷技巧以及在C#中的應(yīng)用示例,感興趣的可以了解一下
    2024-03-03
  • C#貪吃蛇游戲?qū)崿F(xiàn)分析

    C#貪吃蛇游戲?qū)崿F(xiàn)分析

    這篇文章主要為大家分析了C#貪吃蛇游戲的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子

    將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子

    這篇文章介紹了將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子,有需要的朋友可以參考一下
    2013-10-10

最新評(píng)論