Possible Duplicate:
How to add even parity bit on 7-bit binary number




这是我的新代码,它将7位二进制数转换为偶数奇偶校验的8位。但是,它不起作用。例如,当我输入0101010时,它说奇偶校验的数字是147。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{


class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Please enter a 7-bit binary number:");
        int a = Convert.ToInt32(Console.ReadLine());
        byte[] numberAsByte = new byte[] { (byte)a };
        System.Collections.BitArray bits = new System.Collections.BitArray(numberAsByte);
        a = a << 1;

        int count = 0;
        for (int i = 0; i < 8; i++)
        {
            if (bits[i])
            {
                count++;

        }
        if (count % 2 == 1)
        {
            bits[7] = true;
        }
        bits.CopyTo(numberAsByte, 0);
        a = numberAsByte[0];
        Console.WriteLine("The number with an even parity bit is:");
        Console.Write(a);
        Console.ReadLine();
    }

}


}

最佳答案

对从Console.ReadLine()获得的内容使用int.TryParse()。然后,您需要检查该数字是否在0到127之间,以确保仅使用7位。然后,您需要在数字的二进制表示形式中计算1的数量。并将数字加128以设置奇偶校验位,具体取决于您指定的是奇数还是偶数奇偶校验。

数1是您真正的作业。

关于c# - 二进制数中的C#奇偶校验位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9152125/

10-11 16:50