我正在制作一个将hexa值转换为二进制值的程序。好吧,我确实做到了,但现在我在我的程序的第二部分面临一个问题
现在我想显示我的Binary中出现的“1”的位置 喜欢 例如 我的二进制文件是
0100100101101
它应该告诉我
2,5,8,10,11,13
private void button1_Click(object sender, EventArgs e)
{
string temp = textBox1.Text;
string binary = ConvertTOBinary(temp);
} // This is the code of my Button
public string ConvertTOBinary(string temp)
{
string binaryval = "";
binaryval = Convert.ToString(Convert.ToInt64(temp, 16), 2);
MessageBox.Show(binaryval);
return binaryval;
}
我在C#中制作!!
答案 0 :(得分:6)
var indexes=binary.Select((x,i)=>new{digit=x,index=i})
.Where(x=>x.digit=='1')
.Select(x=>x.index+1);
或正则表达式
var indexes=Regex.Matches(binary,"1")
.Cast<Match>()
.Select(x=>x.Index+1);
或
List<int> indexes=new List<int>();
for(int i=0;i<binary.length;i++)
{
if(binary[i]=='1')indexes.Add(i+1);
}
答案 1 :(得分:1)
作为单一选择:
var indexes = binary
.Select((c, index) => c == '1' ? index + 1 : 0)
.Where(indexPlus1 => indexPlus1 > 0);
然后将代码放入“2,5,8,10,11,13”:
var indexesText = string.Join(",", indexes);