C# 如何设置所有数组';在C语言中将元素转换为一个变量#
例如,我有一个数组C# 如何设置所有数组';在C语言中将元素转换为一个变量#,c#,arrays,C#,Arrays,例如,我有一个数组 int[] array = {1,0,0,1,0} 一个int变量=0 我想把所有数组的元素都设置为变量。我该怎么做 variable=10010 此外,如果我们想扭转这种局面?变量的值设置为数组 int something=10000 to int[] something={1,0,0,0,0} 感谢您的所有贡献/==========================================继续=================== //===
int[] array = {1,0,0,1,0}
一个int变量=0代码>
我想把所有数组的元素都设置为变量。我该怎么做
variable=10010
此外,如果我们想扭转这种局面?变量的值设置为数组
int something=10000 to int[] something={1,0,0,0,0}
感谢您的所有贡献/==========================================继续===================
//==============go forwards===================
int[] array = { 1, 0, 0, 1, 0 };
int variable = 0;
for (int i = 0; i < array.Length; ++i)
{
//first element
if (i == 0)
variable = array[i];
else
{
variable *= 10;
variable += array[i];
}
}
//print resualts
Console.WriteLine(variable);
//===================go backwards===============
int variable2 = 10010;
//convert it into a char array
string value = variable2+"";
//set the array length based on the size
int[] reverse = new int[value.Length];
//loop
for (int i = 0; i < value.Length; ++i)
{
//grab the number from a char value and push it into the array
reverse[i] = (int)Char.GetNumericValue(value[i]);
}
//print out
for(int i = 0; i <reverse.Length;++i)
{
Console.WriteLine("[" + i + "] = " + reverse[i]);
}
int[]数组={1,0,0,1,0};
int变量=0;
for(int i=0;i 对于(int i=0;i我在这里打电话,请耐心听我说,但是如果性能不是问题,那么像这样的事情怎么样:
int.Parse(string.Join(string.Empty, array.Select(d => d.ToString()));
显然,在解析溢出、无效字符等时,您需要一些错误处理。这是另一种方法,但没有其他方法那么紧凑。这种方法演示了从0和1的数组构造int的逐位操作
class Program
{
// converts array of 0's and 1's to an int, and assumes big endian format.
static int bitArrayToInt(int[] bit_array)
{
int rc = 0;
for (int i = 0; i < bit_array.Length; i++)
{
rc <<= 1; // bit shift left
rc |= bit_array[i]; // set LSB according to arr[i].
}
return rc;
}
static void Main(string[] args)
{
int[] array = { 1, 0, 0, 1, 0 };
int rc = bitArrayToInt(array);
System.Console.WriteLine("{0} = {1} binary",rc, Convert.ToString(rc, 2));
System.Console.ReadLine();
}
}
类程序
{
//将0和1的数组转换为int,并采用big-endian格式。
静态int位数组int(int[]位数组)
{
int rc=0;
对于(int i=0;i rc我能想到的最短最快的方法
byte[] array = { 1, 0, 1, 0, 0 };
string temp = "";
int result = 0;
for (int i = 0; i < array.Length; i++)
temp += array[i].ToString();
result = Convert.ToInt32(temp);
byte[]数组={1,0,1,0,0};
字符串temp=“”;
int结果=0;
for(int i=0;i
Hi,你的数组将始终是“位”?而你的变量将始终是字符串?不总是位,它可以是任何值。我只是尝试将数组的所有值设置为变量,数组和变量可以是int,string等…它可以工作!我试着这样做似乎很接近你的哈哈,int[]数组={1,2,3,4,5};int variable;for(int i=0;iGlad)您找到了适合需要的东西。但是对于反向版本,它非常有用,非常感谢!您不需要首先使用if/else。如果i
=0,则variable
=0,并且执行variable*=10;
根本不会更改值。