C# 位数组到整数问题 public static int getIntegerFromBitArray(位数组位数组) { var结果=新整数[1]; bitArray.CopyTo(结果为0); 返回结果[0]; } //输入A)01110 //产出A)14 //输入B)0011 //输出B)12
基本上,它以与预期相反的顺序考虑位-您没有显示如何将输入二进制映射到C# 位数组到整数问题 public static int getIntegerFromBitArray(位数组位数组) { var结果=新整数[1]; bitArray.CopyTo(结果为0); 返回结果[0]; } //输入A)01110 //产出A)14 //输入B)0011 //输出B)12,c#,bitarray,C#,Bitarray,基本上,它以与预期相反的顺序考虑位-您没有显示如何将输入二进制映射到位数组,但结果是将其视为1100而不是0011 诚然,文档并不清楚,但它确实按照我预期的方式工作:bitArray[0]表示最低有效值,就像通常讨论二进制时一样(所以位0是0/1,位1是0/2,位2是0/4,位3是0/8等等)。例如: public static int getIntegerFromBitArray(BitArray bitArray) { var result = new int[1]; bitArra
位数组,但结果是将其视为1100而不是0011
诚然,文档并不清楚,但它确实按照我预期的方式工作:bitArray[0]
表示最低有效值,就像通常讨论二进制时一样(所以位0是0/1,位1是0/2,位2是0/4,位3是0/8等等)。例如:
public static int getIntegerFromBitArray(BitArray bitArray)
{
var result = new int[1];
bitArray.CopyTo(result, 0);
return result[0];
}
// Input A) 01110
// Output A) 14
// Input B) 0011
// Output B) 12 <=== ????? WHY!!! :)
基本上,它是以与预期相反的顺序考虑位的-您没有显示如何将输入二进制映射到位数组
,但结果是将其视为1100而不是0011
诚然,文档并不清楚,但它确实按照我预期的方式工作:bitArray[0]
表示最低有效值,就像通常讨论二进制时一样(所以位0是0/1,位1是0/2,位2是0/4,位3是0/8等等)。例如:
public static int getIntegerFromBitArray(BitArray bitArray)
{
var result = new int[1];
bitArray.CopyTo(result, 0);
return result[0];
}
// Input A) 01110
// Output A) 14
// Input B) 0011
// Output B) 12 <=== ????? WHY!!! :)
你们需要将钻头旋转到正确的方向才能得到正确的结果。1100是12您需要将位旋转到正确的方向以获得正确的结果。1100是12请告诉我们您是如何使用此方法的,输入A和b是如何生成的。请告诉我们您是如何使用此方法的,输入A和b是如何生成的。第一个输入(01110
)是对称的,所以他没有注意到+1一旦您尝试实现CopyTo之类的功能,顺序实际上就非常合理。第一个输入(01110
)是对称的,所以他没有注意到+1一旦您尝试实现CopyTo之类的功能,顺序实际上是非常合理的。不,这里不需要旋转,这是反射。例如,如果OP的输入是1101,结果将是11(8+2+1),你不能通过旋转1101的位模式来获得它……是的,你是对的。我的意思是旋转180;)。反思在这里最合适。如果1101旋转180,我们得到1011。11^10=1011^2不清楚你是否轻率,但如果你不轻率,“旋转180”通常意味着“旋转180位”-我永远不会用“旋转”这个词来表示“反射”。反射在这里最合适。不,这里不需要旋转-这是反射。例如,如果OP的输入是1101,结果将是11(8+2+1),你不能通过旋转1101的位模式来获得它……是的,你是对的。我的意思是旋转180;)。反思在这里最合适。如果1101旋转180,我们得到1011。11^10=1011^2不清楚你是否轻率,但如果你不轻率,“旋转180”通常意味着“旋转180位”-我永远不会用“旋转”这个词来表示“反射”。反射在这里最合适。