首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitArray到整数问题

BitArray到整数问题
EN

Stack Overflow用户
提问于 2012-03-14 15:34:10
回答 2查看 4.8K关注 0票数 1
代码语言:javascript
复制
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!!! :)

谁能解释一下为什么我的第二个返回值是12而不是3?请..。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-14 15:37:25

基本上,它考虑的位的顺序与您预期的相反-您还没有展示如何将输入的二进制映射到BitArray,但结果是将其视为1100而不是0011。

无可否认,文档并不清楚,但它确实以我期望的方式工作:bitArray[0]表示最低有效值,就像讨论二进制时通常的情况一样(因此位0是0/1,位1是0/2,位2是0/4,位3是0/8等等)。例如:

代码语言:javascript
复制
using System;
using System.Collections;

class Program
{
    static void Main(string[] args)
    {
        BitArray bits = new BitArray(8);
        bits[0] = false;
        bits[1] = true;

        int[] array = new int[1];
        bits.CopyTo(array, 0);
        Console.WriteLine(array[0]); // Prints 2
    }
}
票数 10
EN

Stack Overflow用户

发布于 2012-03-14 15:40:25

你需要将钻头旋转到正确的方向才能得到正确的结果。1100等于12

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9697623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档