C# BitArray 程序
- 提问者网友:無理詩人
- 2021-05-14 18:23
- 五星知识达人网友:污到你湿
- 2021-05-14 19:40
代码如下:
class Program
{
static void Main(string[] args)
{
Int32 num = ReadNum();
PrintBit(num);
Console.Write("按任意键退出。");
Console.ReadKey();
}
private static Int32 ReadNum()
{
Console.Write("请输入一个整数:");
while (true)
{
String numStr = Console.ReadLine();
Int32 num;
if (Int32.TryParse(numStr, out num))
{
return num;
}
Console.Write("您输入的不是数字,请重新输入。");
}
}
private static void PrintBit(Int32 num)
{
Int32[] numArray = new Int32[] { num };
BitArray bits = new BitArray(numArray);
Int32 bitLen = bits.Length;
Boolean outPut = false;
Console.Write("您输入的数字二进制形式为:");
for (Int32 i = bitLen - 1; i >= 0; i--)
{
Boolean bit = bits.Get(i);
if (!outPut && bit)
{
outPut = true;
}
if (outPut)
{
Console.Write("{0}", bit ? 1 : 0);
}
}
Console.WriteLine();
}
}
字节数组和整数数组构造函数例子:
6用二进制表示(从高位到低位)为110。
Byte类型的数据共8位,Byte的6在内存中表示(从低位到高位)为01100000
Byte[] bytes=new Byte[]{6,6,6}在内存中为01100000,01100000,01100000
用该bytes作为BitArray的构造函数得到的BitArray为011000000110000001100000
同理,Int32类型(即C#中的int类型)的数据共32位,Int32的6内存中表示(从低位到高位)为01100000 00000000 00000000 00000000
Int32[] ints=new Int32[]{6,6,6}
用上面的ints作为BitArray得到的BitArray为01100000 00000000 00000000 0000000001100000 00000000 00000000 0000000001100000 00000000 00000000 00000000