.NET 4.x Перевод числа из строки в байт - C#

Узнай цену своей работы

Формулировка задачи:

При переводе строки типа 10101010 почему-то получается 01010101, и наоборот при переводе 01010101 получаю 10101010. Но если перевожу например 11111111 или 11110000 то всё работает нормально. Подозреваю что ошибка в 9 строке но что не так не пойму. Подскажите где я ошибся? И может кто знает как VS 2015 при отладке в окне переменных сделать двоичное представление числа. У меня там или DEC или HEX.
Листинг программы
  1. while (bytes.Length > 0) //В цикле переводим строку в массив байтов
  2. {
  3. byte tmp = 0;
  4. for (byte i=0; i<8; i++) //Делим весь массив на байты
  5. {
  6. if (bytes.Substring(i, 1) == "0")
  7. {
  8. tmp &= (byte)~(0x11111110 << i);
  9. }
  10. else if (bytes.Substring(i, 1) == "1")
  11. {
  12. tmp |= (byte)(0x00000001 << i);
  13. }
  14. }
  15. }

Решение задачи: «.NET 4.x Перевод числа из строки в байт»

textual
Листинг программы
  1. byte tmp = 0;
  2. for (int i=0; i<8; i++) //Делим весь массив на байты
  3. {
  4.     if (bytes[7-i] == '0')
  5.     {
  6.         tmp &= (byte)~(254 << i);
  7.     }
  8.     else if (bytes[7-i] == "1")
  9.     {
  10.         tmp |= (byte)(1 << i);
  11.     }
  12. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы