Avatar billede sinnan Nybegynder
30. september 2003 - 14:35 Der er 2 kommentarer og
1 løsning

hvem kan fortolke crc koder?

Er der nogen af jer, som kan hjælpe mig med at forstå den følgende kode, CRC.
Det vil være dejligt, hvis nogen af jer kan komme op med en grundig forklaring.
På forhånd tak!

public class CRC
{
    private static final int BITS = 16;
   
    private short poly;
   
    public CRC( short poly )
    {
        this.poly = poly;
    }
   
   
    private short register;
   
    private void oneStep( int bit )
    {
        if( register < 0 )
            register = (short)( ( ( register << 1 ) | bit ) ^ poly );
        else
            register = (short)( ( register << 1 ) | bit );
    }
   
    public short findChecksum( byte message[] )
    {
        register = 0;
       
        for( int i = 0; i < message.length; ++i ) {
            byte b = message[i];
           
            for( int j = 0; j < 8; ++j ) {
                if( b < 0 )
                    oneStep( 1 );
                else
                    oneStep( 0 );
                b = (byte) ( b << 1 );
            }
        }
       
        for( int i = 0; i < BITS; ++i )
            oneStep( 0 );
           
        return register;
    }
}




public class TestCRC
{
    public static void main( String args[] )
    {
        CRC c = new CRC( (short)0x8005 );
       
        byte m[] = { (byte)0xff };
       
        System.out.println( "Checksum: " + toBinaryString( c.findChecksum( m ) ) );
    }
   
    private static String toBinaryString( short s )
    {
        String res = "";
       
        for( int i = 0; i < 16; ++i ) {
            if( s < 0 )
                res += '1';
            else
                res += '0';
            s = (short)( s << 1 );
        }
       
        return res;
    }
}
Avatar billede arne_v Ekspert
30. september 2003 - 15:09 #1
Hvad vil du have at vide ?

Den udregner en CRC.

Jeg har ikke checket algoritmen, men formentlig er det en OK implementation.

[CRC er en bestemt form for checksum beregning på data]
Avatar billede sinnan Nybegynder
02. oktober 2003 - 10:16 #2
Det jeg gerne vil vide er, hvad der sker i hver linie, dvs. mere uddybende forklaring på hver linie. Jeg ved godt, at denne kode udregner en CRC.
Avatar billede conrad Nybegynder
03. oktober 2003 - 09:36 #3
Hej sinnan - jeg er sikker på der er mange der godt kan hjælpe dig, men du har lukket spørgsmålet ved selv at acceptere. Jeg tror du er nød til at åbne et nyt tilsvarende spørgsmål.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester