为什么我的新BitArray用错误的值初始化?

史努比

背景

我这里有一个控制台应用程序,发生以下情况...

  1. 用户/操作员在控制台中输入一串位,即“ 0101”。-作品
  2. 比特串被转换成一个字节。-作品
  3. 字节数组使用我的反向方法反向。-作品
  4. 我在控制台窗口中打印出反向字符串。-没用

我的问题是这里的4号。我从新反转的reversedBits值中创建了一个位数组,这似乎是哪里出错了。好像reversedBitArray是用旧的/未反转的bits值而不是初始化reversedBits,因为我的输出似乎始终是未反转的String。这个错误看起来应该是微不足道的,它reversedBits是正确反转的值,因此声明时存在一些问题,reversedBitArray但我不知道是什么。以下是我的所有源代码,包括:

主控制台应用程序。

static void Main(string[] args)
{
    BitArray reversedBitArray = null;
    String bitString = String.Empty;
    byte reversedBits = 0;
    byte bits = 0;

    // prompt the user to enter a string of bits
    Console.WriteLine("Enter a string of bits here: ");

    // wait for the user to enter the string of bits
    bitString = Console.ReadLine();

    // convert the string of bits into an integer
    bits = Convert.ToByte(bitString, 2);

    // reverse all of the bits
    reversedBits = ReverseBits(bits);

    // display the reversed bits
    Console.WriteLine("\nThe reversed bit string is...");
    reversedBitArray = new BitArray(new byte[] { reversedBits });
    foreach (bool value in reversedBitArray)
    {
        Console.Write(Convert.ToInt32(value));
    }

    // wait for the user to exit
    Console.WriteLine("\n\nPress any key to exit...");
    while (!Console.KeyAvailable)
    {
        Thread.Sleep(100);
    }

    // exit the console application
    Environment.Exit(0);
}

位反转方法。

static byte ReverseBits(byte x)
{
    BitArray myBitArray
    byte[] singleElementArray = null;
    int bitArrayMidPoint = 0;
    int bitArrayLength = 0;

    // get a bit array
    myBitArray = new BitArray(new byte[] { x });

    // get the length and mid-point
    bitArrayLength = myBitArray.Length;
    bitArrayMidPoint = (bitArrayLength / 2);

    // start the reversal
    for (int i = 0; i < bitArrayMidPoint; i++)
    {
        bool bit = myBitArray[i];
        myBitArray[i] = myBitArray[bitArrayLength - i - 1];
        myBitArray[bitArrayLength - i - 1] = bit;
    }

    // back to a byte
    singleElementArray = new byte[1];
    myBitArray.CopyTo(singleElementArray, 0);

    // return the reversed value
    return singleElementArray[0];
}

这是我在控制台窗口中运行的示例输出。

示例问题控制台窗口

史努比

正如其他用户所建议的那样,这是我使用的对我有用的修复程序。

static void Main(string[] args)
{
    BitArray reversedBitArray = null;
    String bitString = String.Empty;
    byte reversedBits = 0;
    byte bits = 0;

    // prompt the user to enter a string of bits
    Console.WriteLine("Enter a string of bits here: ");

    // wait for the user to enter the string of bits
    bitString = Console.ReadLine();

    // convert the string of bits into an integer
    bits = Convert.ToByte(bitString, 2);

    // reverse all of the bits
    reversedBits = ReverseBits(bits);

    // display the reversed bits
    Console.WriteLine("\nThe reversed bit string is...");
    reversedBitArray = new BitArray(new byte[] { reversedBits });
    for (int i = (reversedBitArray.Length - 1); i > 0; i--)
    {
        Console.Write(Convert.ToInt32(reversedBitArray[i]));
    }

    // wait for the user to exit
    Console.WriteLine("\n\nPress any key to exit...");
    Console.ReadKey();

    // exit the console application
    Environment.Exit(0);
}

这只是简单地以相反的顺序打印BitArray的值。这是新的示例输出。

示例解决方案控制台窗口

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的新BitArray用错误的值初始化?

来自分类Dev

为什么我收到“未初始化的变量”错误

来自分类Dev

尽管有初始化,为什么我会收到“在初始化之前使用的变量‘网格’”错误?

来自分类Dev

从整数初始化BitArray

来自分类Dev

为什么使用 NameError 创建新资源错误(未初始化的常量 Thing::user)?

来自分类Dev

为什么我的Frame子类在初始化中抛出错误?

来自分类Dev

为什么我在头文件“ vector之前的预期初始化”中收到此错误?

来自分类Dev

为什么我收到有关变量初始化的错误?

来自分类Dev

为什么我在初始化字母时遇到错误,该如何解决?

来自分类Dev

为什么我收到'Oracle.DataAccess.Client.OracleConnection错误的类型初始化器?

来自分类Dev

即使在初始化之后,为什么我会收到此错误?

来自分类Dev

为什么我的基因剔除视图模型用不同的值初始化?

来自分类Dev

为什么在用户为其分配值之前,我需要初始化该变量?

来自分类Dev

为什么字典总是新初始化?

来自分类Dev

为什么收到错误“未初始化的常量SecureRandom?

来自分类Dev

为什么在Dart中对final字段的初始化是错误的?

来自分类Dev

为什么初始化结构时出现段错误?

来自分类Dev

为什么会收到无效的初始化错误?

来自分类Dev

为什么列表初始化会导致Seg错误?

来自分类Dev

为什么在Dart中对final字段的初始化是错误的?

来自分类Dev

为什么我不能初始化Map <int,String>?

来自分类Dev

为什么我不能像这样初始化数组?

来自分类Dev

为什么我无法在jQuery中初始化变量?

来自分类Dev

为什么我无法初始化COM库?

来自分类Dev

为什么我的写方法没有初始化?

来自分类Dev

为什么我无法在jQuery中初始化变量?

来自分类Dev

为什么我的变量没有初始化?

来自分类Dev

为什么我们要初始化 webelement?

来自分类Dev

为什么值初始化如此命名?

Related 相关文章

  1. 1

    为什么我的新BitArray用错误的值初始化?

  2. 2

    为什么我收到“未初始化的变量”错误

  3. 3

    尽管有初始化,为什么我会收到“在初始化之前使用的变量‘网格’”错误?

  4. 4

    从整数初始化BitArray

  5. 5

    为什么使用 NameError 创建新资源错误(未初始化的常量 Thing::user)?

  6. 6

    为什么我的Frame子类在初始化中抛出错误?

  7. 7

    为什么我在头文件“ vector之前的预期初始化”中收到此错误?

  8. 8

    为什么我收到有关变量初始化的错误?

  9. 9

    为什么我在初始化字母时遇到错误,该如何解决?

  10. 10

    为什么我收到'Oracle.DataAccess.Client.OracleConnection错误的类型初始化器?

  11. 11

    即使在初始化之后,为什么我会收到此错误?

  12. 12

    为什么我的基因剔除视图模型用不同的值初始化?

  13. 13

    为什么在用户为其分配值之前,我需要初始化该变量?

  14. 14

    为什么字典总是新初始化?

  15. 15

    为什么收到错误“未初始化的常量SecureRandom?

  16. 16

    为什么在Dart中对final字段的初始化是错误的?

  17. 17

    为什么初始化结构时出现段错误?

  18. 18

    为什么会收到无效的初始化错误?

  19. 19

    为什么列表初始化会导致Seg错误?

  20. 20

    为什么在Dart中对final字段的初始化是错误的?

  21. 21

    为什么我不能初始化Map <int,String>?

  22. 22

    为什么我不能像这样初始化数组?

  23. 23

    为什么我无法在jQuery中初始化变量?

  24. 24

    为什么我无法初始化COM库?

  25. 25

    为什么我的写方法没有初始化?

  26. 26

    为什么我无法在jQuery中初始化变量?

  27. 27

    为什么我的变量没有初始化?

  28. 28

    为什么我们要初始化 webelement?

  29. 29

    为什么值初始化如此命名?

热门标签

归档