首页 > 解决方案 > 尝试将充满 1 和 0(二进制)的数组转换为字符串,然后在 Unity 中转换为 int

问题描述

int[] configurationArray = new int[8];
        
int configurationIndex = 0;
for(int i = 0; i < 8; i++)
{
    if(vertexState[i]+cube[i] == 1)
    {
        configurationArray[i] = 1;
    }
    else
    {
        configurationArray[i] = 0;
    }
}

string binaryString = configurationArray.ToString();
configurationIndex = Convert.ToInt32(binaryString, 2);
Debug.Log(configurationIndex);


return configurationIndex;

出现此错误:

FormatException: Could not find any parsable digits.
System.ParseNumbers.StringToInt (System.String value, System.Int32 fromBase, System.Int32 flags, System.Int32* parsePos) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.ParseNumbers.StringToInt (System.String value, System.Int32 fromBase, System.Int32 flags) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Convert.ToInt32 (System.String value, System.Int32 fromBase) (at <695d1cc93cca45069c528c15c9fdd749>:0)

标签: c#arraysbinary

解决方案


看起来你需要在设置变量时替换你configurationArray.ToString()的。string.Concat(configurationArray);binaryString

.ToString()数组上的输出是System.Int32[],这就是为什么在与 int 的对话中出现错误的原因。


推荐阅读