C# 你指的是哪种平价?偶数还是奇数?7位数字可以表示为七个字符的字符串,每个字符必须是'0'或'1',或者可以表示为0-127范围内的整型值。以“您使用的唯一数字…”开头的句子暗示了前一种方法,但调用Convert.ToInt32只有在您采用后一种方法时才有效

C# 你指的是哪种平价?偶数还是奇数?7位数字可以表示为七个字符的字符串,每个字符必须是'0'或'1',或者可以表示为0-127范围内的整型值。以“您使用的唯一数字…”开头的句子暗示了前一种方法,但调用Convert.ToInt32只有在您采用后一种方法时才有效,c#,binary,parity,C#,Binary,Parity,你指的是哪种平价?偶数还是奇数?7位数字可以表示为七个字符的字符串,每个字符必须是'0'或'1',或者可以表示为0-127范围内的整型值。以“您使用的唯一数字…”开头的句子暗示了前一种方法,但调用Convert.ToInt32只有在您采用后一种方法时才有效。那么在c代码中您将如何做到这一点?只有回答值为+1,当所有其他人都对标记为家庭作业@AsharAslam的东西失去帮助时,家庭作业的重点是学习,而不是让其他人为你做:)尽管有些人可能会提出相反的观点。那么,你会如何在c代码中做到这一点呢?只有


你指的是哪种平价?偶数还是奇数?7位数字可以表示为七个字符的字符串,每个字符必须是
'0'
'1'
,或者可以表示为0-127范围内的整型值。以“您使用的唯一数字…”开头的句子暗示了前一种方法,但调用
Convert.ToInt32
只有在您采用后一种方法时才有效。那么在c代码中您将如何做到这一点?只有回答值为+1,当所有其他人都对标记为
家庭作业
@AsharAslam的东西失去帮助时,家庭作业的重点是学习,而不是让其他人为你做:)尽管有些人可能会提出相反的观点。那么,你会如何在c代码中做到这一点呢?只有答案值得+1,当所有其他人都对标记为
家庭作业
@AsharAslam的东西失去帮助时,家庭作业的目的是学习,而不是让别人为你做:)尽管有些人可能会反驳。@LB:好的,我以后会考虑到这一点。我用了一种更具教育意义的方式来阐述我的答案。但是,您提供的链接还说,“不要否决其他真诚回答家庭作业问题的人,即使他们违反了这些准则”。@OlivierJacot Descombes:很抱歉问一下,但上面说找不到BitArray。另外,我想向用户显示具有奇偶校验的结束二进制数。
BitArray
位于
System.Collections
命名空间中。VisualStudio将向您显示一个智能标记,它将为您导入名称空间。向用户显示号码应该不是问题。要么按原样打印数字,要么遍历位并打印它们。我已经将BitArray放在名称空间区域,但现在它说它是名称空间,但用作类型。有什么问题吗?@LB:好的,我以后会考虑的。我用了一种更具教育意义的方式来阐述我的答案。但是,您提供的链接还说,“不要否决其他真诚回答家庭作业问题的人,即使他们违反了这些准则”。@OlivierJacot Descombes:很抱歉问一下,但上面说找不到BitArray。另外,我想向用户显示具有奇偶校验的结束二进制数。
BitArray
位于
System.Collections
命名空间中。VisualStudio将向您显示一个智能标记,它将为您导入名称空间。向用户显示号码应该不是问题。要么按原样打印数字,要么遍历位并打印它们。我已经将BitArray放在名称空间区域,但现在它说它是名称空间,但用作类型。有什么问题吗?
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();
    }

}
ulong GetNumberParity(string input, bool isEvenParity)
{
    ulong tmp = Convert.ToUInt64(input, 2);
    ulong c = 0;
    for (int i = 0; i < 64; i++) c += tmp >> i & 1;
    if(isEvenParity)
        return Convert.ToUInt64((c % 2 != 0 ? "1" : "0") + input, 2);
    else
        return Convert.ToUInt64((c % 2 == 0? "1" : "0") + input, 2);
}
int a = Convert.ToInt32(Console.ReadLine());
byte[] numberAsByte = new byte[] { (byte)a };
BitArray bits = new BitArray(numberAsByte);
int count = 0;
for (int i = 0; i < 8; i++) {
    if (bits[i]) {
        count++;
    }
}
if (count % 2 == 1) { // Odd number of bits
    bits[7] = true; // Set the left most bit as parity bit for even parity.
}
bits.CopyTo(numberAsByte, 0);
a = numberAsByte[0];
int a = Convert.ToInt32(Console.ReadLine());
a = a << 1;

// Do the parity bit calculation as above and, if necessary
// set the right most bit as parity bit.
bits[0] = true;