Объясните в чем ошибка - C#

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

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

У меня при переводе в 2 систему счисления получается все нормально. пользуюсь вод таким методом
int nac = System.Convert.ToInt32(textBox1.Text);
string str = System.Convert.ToString(nac, 2);
Но как только стараюсь таким же методом перевести первые восемь бит данного числа обратно в систему счисления с основанием 10 получается какая то лажа
x = System.Convert.ToInt32(textBox3.Text.Substring(0, 8));/// беру с числа первые 8 бит для тб 1 уровня
 y = System.Convert.ToInt32(textBox3.Text.Substring(8, 8));/// тут  буру 2 8 бит для тб 2 уровня
 z = System.Convert.ToInt32(textBox3.Text.Substring(16, 12));/// тут смещение получаю оставшиеся 12 бит
 label15.Text= System.Convert.ToString(x,10);
получаю чуть ли не миллион в результате хотя число которое генерируется в первых 2х таблицах в пределах от 0 до 255 где ошибка помогите?!?! И еще если ставлю Int16 с которого все прекрасно и правильно переводиться в 10 систему счисления вот в этом месте
 x = System.Convert.ToInt16(textBox3.Text.Substring(0, 8))
вылетает ошибка число которое сюда попадает либо велико либо мало Даже если я все числа поставлю в Int16 тогда просто пользователь не может ввести число к примеру больше 4 тысяч программа вылетает с такой же ошибкой

Решение задачи: «Объясните в чем ошибка»

textual
Листинг программы
x = nac & 0xFF; // 0-7 биты
y = (nac >> 8) & 0xFF; // 8-15 биты
z = (nac >> 16) & 0x0FFF; // 16-27 биты

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


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

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

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