C # переключатель / перерыв

Дополнение 2 работает следующим образом:

Байт состоит из 8 бит.

00000000 означает 0

11111111 означает 255

Однако, если числа были представлены так, мы не могли бы различать, является ли число положительным или отрицательным. По этой причине бит с левой стороны дает нам эту информацию. Если бит с левой стороны 0, вы можете начать добавлять значение других бит в верхней части zero. Если бит 1, вы должны начать добавлять вверху -128. Поскольку бит на левой стороне равен двум параметрам в семь.

Примеры;

В этих примерах бит с левой стороны равен 1, это означает, что мы добавляем значения других бит в верхней части -128.

10000000 = -128 (-128 + 0)

10000001 = -127 (-128 + 1)

10000011 = -125 (-128 + 3)

10000111 = -121 (-128 + 7)

Одинаковые байты, но на этот раз бит слева - 0. Это означает, что мы начинаем добавлять вверху 0.

00000000 = 0 (0 + 0)

00000001 = 1 (0 + 1)

00000011 = 3 (0 + 3)

00000111 = 7 (0 + 7)

Если мы до сих пор в порядке, ответ на ваш вопрос, наименьшее возможное число с 8 бит с этим правилом:

10000000 = -128

наибольшее возможное число

011111111 = 127

Вот почему диапазон находится между -128 и 127.

13
задан Russell 25 November 2009 в 05:09
поделиться

3 ответа

Да, вы можете перейти к следующему блоку case двумя способами. Вы можете использовать пустые регистры, для которых не нужен перерыв, или использовать goto , чтобы перейти к следующему (или любому) регистру:

switch (n) {
  case 1:
  case 2:
  case 3:
    Console.WriteLine("1, 2 or 3");
    goto case 4;
  case 4:
    Console.WriteLine(4);
    break;
}
32
ответ дан 1 December 2019 в 18:13
поделиться

C # не поддерживает неявную конструкцию провала, но break (или goto ), тем не менее, должен быть там ( msdn ). Единственное, что вы можете сделать, - это складывать кейсы следующим образом:

switch(something) {
    case 1:
    case 2:
      //do something
      break;
    case 3:
      //do something else
}

, но этот break (или другой оператор перехода, например goto ) просто должен быть там.

3
ответ дан 1 December 2019 в 18:13
поделиться

Принуждение к остановке используется для остановки ошибок. Если вам нужно принудительно выполнить провал, используйте «goto case» (замените соответствующее значение)

следующий пример показывает, что вы можете сделать:

switch(n)
{
    case 1:
    case 2:
      //do something for 1+2
      //...
      goto case 3;
    case 3:
      //do something for 3, and also extra for 1+2
      //...
      break;
    default:
      //do something for all other values
      //...
      break;
}

См. http://msdn.microsoft.com /en-us/library/06tc147t%28VS.80%29.aspx[1243 visible

6
ответ дан 1 December 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: