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

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

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

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

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

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

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


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

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

11   голосов , оценка 4 из 5
Похожие ответы