2010-11-10 23 views

Répondre

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

namespace Bits 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string NrBinary; 
      int pp, Key, number; 
      double x, y; 
      Console.WriteLine("Give binary value till 8 bit: "); 
      NrBinary = Console.ReadLine(); 
      if (NrBinary.Length <= 8) 
      { 
       if (NrBinary.Length == 1) NrBinary = "0000000" + NrBinary; 
       if (NrBinary.Length == 2) NrBinary = "000000" + NrBinary; 
       if (NrBinary.Length == 3) NrBinary = "00000" + NrBinary; 
       if (NrBinary.Length == 4) NrBinary = "0000" + NrBinary; 
       if (NrBinary.Length == 5) NrBinary = "000" + NrBinary; 
       if (NrBinary.Length == 6) NrBinary = "00" + NrBinary; 
       if (NrBinary.Length == 7) NrBinary = "0" + NrBinary; 


       pp = NrBinary.Length; 
       number = Convert.ToInt32(NrBinary); 
       Console.WriteLine("PP = " + pp); 

       for (Key = 0; Key < pp; ++Key) 
       { 
        x = Math.Pow(2, Key) - 1; 
        y = pp + Key; 

        if (x >= y) 
        { 
         goto Mess; 
        } 
       } 
      Mess: 
       Console.WriteLine("Controled bit needed Key = " + Key + "\n"); 

       int[] parity = new int[pp]; 
       int[] DI = new int[pp]; 
       int[] CI = new int[Key]; 

       DI[0] = number % 10; 
       DI[1] = (number/10) % 10; 
       DI[2] = (number/100) % 10; 
       DI[3] = (number/1000) % 10; 
       DI[4] = (number/10000) % 10; 
       DI[5] = (number/100000) % 10; 
       DI[6] = (number/1000000) % 10; 
       DI[7] = (number/10000000) % 10; 

       CI[0] = DI[0]^DI[1]^DI[3]^DI[4]^DI[6]; 
       CI[1] = DI[0]^DI[2]^DI[3]^DI[5]^DI[6]; 
       CI[2] = DI[1]^DI[2]^DI[3]^DI[7]; 
       CI[3] = DI[4]^DI[5]^DI[6]^DI[7]; 

       Console.WriteLine("\n = " + CI[0] + "" + CI[1] + "" + CI[2] + "" + CI[3] + "\n"); 
       Console.Write("Bit with Hamming code: "); 
       Console.WriteLine(DI[7] + "" + DI[6] + "" + DI[5] + "" + DI[4] + "" + CI[3] + "" + DI[3] 
       + "" + DI[2] + "" + DI[1] + "" + CI[2] + "" + DI[0] + "" + CI[1] + "" + CI[0]); 
      } 
      else 
      { 
       Console.WriteLine("\n\n 8 bit character maximaly:)"); 
      } 
     } 
    } 
} 
+0

Vous devriez probablement ajouter ce code comme une mise à jour à votre question plutôt que d'une réponse. Et vous dites que vous n'êtes pas coincé - ce code fonctionne-t-il pour vous? Si non, qu'est-ce qui ne fonctionne pas? –

+0

cela fonctionne bien, mais si vous pensez que quelque chose peut être amélioré .. vous êtes invités à le faire .. – Gogolo

0

En supposant que c'est des devoirs, voici un pointer to the general algorithm. Allez-y vous-même, postez ce que vous avez essayé et les problèmes spécifiques que vous rencontrez, et les gens pourraient vous aider.

+0

Ouais, vous avez raison, c'est mon premier poste ici, et je n'ai pas la moindre idée de la façon de résoudre ce problème, et la pire chose est que je n'ai même pas commencé à faire quelque chose, car je ne sais pas comment commencer ... Si c'est quelqu'un qui a quelque chose à propos de cette question, je l'apprécierais. – Gogolo

+0

Savez-vous comment écrire des applications console? Si oui, alors que + la page Wikipedia devrait être suffisante pour commencer. –

+0

Je sais comment wright CA, mais le problème est en algotithm .. – Gogolo