Сдвиг разрядов - C#

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

Привет всем. Читаю шилдта и там узрел о сдвиге влево, и вот говорится что при сдвиге крайние значения теряются, почему тогда в этом коде
static void Main(string[] args)
        {
            int x = 15 << 8;
            Console.WriteLine(x);
        }
получается число 3840??? 15 это в двоичном 1111 при сдвиге влево на 8 значений, должны по идее остаться одни нули, а у меня получается как будто еще 8 нулей приписали, т.е. 111100000000 Как сие понять???

Код к задаче: «Сдвиг разрядов - C#»

textual
1111
11110
111100
1111000
11110000

6   голосов, оценка 3.833 из 5


СОХРАНИТЬ ССЫЛКУ