Показать сообщение отдельно
Старый 13.09.2011, 10:57   #57
going
Вступаю в Клуб
 
Авто: Outlander 2.0 2WD
Сообщений: 3
По умолчанию Re: Изменение настроек ETACS (CRC Calculator)

AlexH, я так понял алгоритм расчета CRC-XMODEM
полином 8408
Вот такой у меня код получился. .NET
PHP код:
 string inputStr "84103305181301086B00410540A611011D00003A004F72B0AC82A1016B008242E428214380802309";
            
StringBuilder sb = new StringBuilder();
            
sb.Append(inputStr);
            
// Выравнивание строки
            
for (int i 0<= 0x200i++)
            {
                if (
sb.Length i)
                    
sb.Append(" ");
            }
            
inputStr sb.ToString();
            
byte[] str Encoding.ASCII.GetBytes(inputStr);
            
int result 65535
            
int length str.Length;
            
int CurrentByte 0;
            
int StepByte 0;

            for (
int i 0lengthi++)
            {
                
CurrentByte = (int)str[i];
                
result ^= CurrentByte;
                
StepByte result;
                for (
int j 08j++)
                {
                    if ((
StepByte 1) == 1)
                    {
                        
result = (StepByte >> 1) & 0xFFFF;
                        
result ^= 0x8408;
                        
StepByte result;
                    }
                    else
                    {
                        
StepByte = (StepByte >> 1) & 0xFFFF;
                        
result StepByte;
                    }
                }
            }
            
ushort res = ((ushort)~(short)result);
            
Console.WriteLine("Result : {0}"res.ToString("X")); 
going вне форума   Вверх Ответить с цитированием