[英]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.