簡體   English   中英

c#int到二進制(字符串)到數組

[英]c# int to binary(string) to array

我正在學習c#,我想知道整數中的第3位是1還是0。

所以我如何接近這個是將int轉換為二進制。 然后將字符串轉換為數組。 將字符串數組轉換為int數組並在第3位上切片並檢查值。

我不能讓這件事發生。 這就是我所處的位置。 我從SO使用這個例子轉換為數組

using System;
using System.Text;

class Expression
{
    static void Main()
    {
        int number = 3;
        string binValue = Convert.ToString(number, 2);

        char[] array = binValue.ToCharArray();
        array<int> list = new List<int>();
        for (int i = 0; i < array.Length; i++)
        {
            list.add(value);
        }

        int[] binArr = list.ToArray();
        binArr[2] == 1? "Yes" : "No";
    }
}

這完全是錯誤的做法; 只是執行二進制算術:

bool bit3IsSet = (number & 4) != 0;

其中4是第3位; 你也可以用:

int bitNumber = 3; // etc
bool bitIsSet = (number & (1 << (bitNumber-1))) != 0;

在一般情況下。

您不需要數組轉換:使用String.Substring()函數(re: http//msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.110%29.aspx )檢查第三位的值(在您的情況下: binValue.Substring(2,1) ;在簡短形式中,它可以寫成如下所示:

bool _bit3 = (Convert.ToString(number, 2).Substring(2,1)=="1")? true:false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM