Подсчитать контрольную сумму всех битов в байте - C#
Формулировка задачи:
Суть вопроса в теме. Я немного покодил, и что-то не пашет как я хочу.
Работаю в notepad++, компилирую через батник. Возможности студию поставить пока нет.
static bool CheckSum(uint T) { uint c = 0; // здесь будет храниться сумма битов uint mask = 1; // маска для ксора 0000 0001 for (uint i = 0; i < 9 ; i++) { if ((T^mask) != T ) // еже ли младший бит 1, то надо бы его подсчитать. Например 0000 0011 ксор 0000 0001 = 0000 0010, то есть по операции ксор младший бит меняется и не равен Т. c++; T = T >> 1; // двигаем вправо, что бы проверить следующий бит } // итак 8 раз if (c % 2 == 0) // еже ли сумма битов четная return true; else return false; }
Решение задачи: «Подсчитать контрольную сумму всех битов в байте»
textual
Листинг программы
static bool CheckSum(uint t) { bool result = true; //начальное значение результата - чёт. while(t >= 1) { //пока во входном параметре остаётся хоть 1 бит.. result ^= (t & 0x01) != 0; //..инверсия результата если последний бит входа - единица t = t >> 1; //..сдвиг входа на 1 вправо } return result; //возврат результата }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д