Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Как «прочитать» двоичное число




Тема 2. Переменные и типы данных

2.1 Переменные

Концепция переменной

Понятие переменной является очень важным в программировании. Она похожа на коробку, предназначенную для хранения разной всячины.


Рис. 2-1 Простейшее представление о переменной

Термин «переменная» пришел к нам из мира математики, где запись «n = 1» означает, что, начиная с этого момента, используя «n», мы будем подразумевать число «1», пока не изменим значение этой переменной на что-то другое. В программировании все точно так же – программист может написать:

Int32 n;
n = 1;

Тем самым он создаст «коробку» и положит в нее число «1». Начиная с данного места программы, переменная «n» станет доступна, а ее значение будет равно 1 до тех пор, пока мы не заменим его некоторым другим числом.

Объявление переменной

К сожалению, многие языки программирования, включая C#, накладывают на переменные ряд ограничений, и требуют формальности. Например, математику достаточно сказать только «n равно 1», а программисту нужно выразиться более точно: «Выделить 32 бита оперативной памяти под хранение данных и обозначить эту ячейку именем «n»; выкинуть все, что там было, и записать туда число 1». Другими словами, язык программирования, в отличие от языка математических формул, в большей степени указывает на то, что именно нужно делать.

В программировании нельзя использовать то, чего нет, поэтому переменную необходимо, сначала создать. Процесс создания переменных по-умному называется «объявлением» или «описанием». Делается это так: сначала указывается тип переменной, а после ее имя.

В общем виде:
тип название_переменной;

 

Пример:
Int32 MyValue;

В данном примере мы создали переменную MyValue с типом Int32, который позволяет хранить целые числа в диапазоне ± 2 миллиарда. Отметим так же, что на языке C# команды нужно отделять друг от друга символом точки с запятой, поэтому поставили этот знак в конце строки.

Чтобы сократить писанину, несколько подобных переменных можно объявить одной строкой, перечислив их имена через запятую:

В общем виде:
тип первая_переменная, вторая_переменная, третья_переменная;

 

Пример:
Int32 MyValue1, MyValue2, MyValue3;

Создавая переменную, крайне желательно сразу же записывать в нее какое-то начальное значение, что по-умному это называется инициализацией. Если этого не сделать, то при попытке считать значение неинициализированной переменной в программе возникнет ошибка.

В общем виде:
тип название_переменной = значение;

 

Пример:
Int32 MyValue = 0;

Имена переменных

Все обычные человеческие языки состоят из слов, а те из букв. Для составления слов нельзя брать какие попало буквы – только те, которые включены в алфавит этого языка. Та же ситуация наблюдается в программировании, там у каждого языка тоже есть алфавит.

В состав алфавита языка С# входят большие и маленькие буквы, цифры и знак нижнего подчеркивания. Из этих символов можно составлять слова, которые делятся на два вида: зарезервированные слова и пользовательские имена.

Зарезервированными словами считаются те, которые имеют особый смысл в языке. Всего в C# их 76 штук, но запоминать их не нужно. Какие-то запомнятся сами, т.к. ты их будешь часто использовать, а во всех других ситуациях компилятор сам тебе скажет, о том, что ему не понравилось выбранное тобою название.

Именами или идентификаторами называются все остальные слова, которые можно составить из букв алфавита. Единственное ограничение – имена не могут начинаться с цифр! И еще одно важное замечание: язык C# различает большие и маленькие буквы, поэтому можно без проблем создать три разных переменных с именами Vasya, vasya и VASYA.

Все остальные символы, такие как знаки препинания, скобки, кавычки, тире, звездочки, решетки, знаки вопроса, восклицательные знаки, знаки доллара и множество других используются в программах на языке C#, но, как и зарезервированные слова, имеют особый смысл и не могут использоваться в именах.

Добавим также, что C# позволяет использовать в названиях переменных символы кириллицы, но это считается плохим тоном. Во-первых, возможны ошибки, так как русская буква «о» и английская «оу» – это две совершенно разные буквы. Ну, а, во-вторых, нужно будет довольно часто переключать раскладку на клавиатуре, что отнимает некоторое время. А хорошие программисты стремятся оптимизировать все, в том числе и свою работу.

Оператор присвоения

Как ты уже заметил, в программировании одиночный знак равенства говорит не о том, что переменные равны, а указывает, что значение правой части этого «уравнения» следует записать в переменную, которая стоит слева. Поэтому в правой части могут быть выражения, а в левой только имя какой-то одной переменной. В силу этого обстоятельства знак равенства называется так же оператором присваивания.

Например, в третьей строке нижеследующего примера в переменную «a» мы записываем значение переменной «b», но никак не наоборот, поэтому обе переменные станут равны трем.

Int32 a=1;
Int32 b=3;
a = b;
Console.Write("a = {0} b={1}", a, b);

В данном примере для вывода на экран мы воспользовались уже знакомой функцией «Console.Write ();». Раньше нам нужен был только один параметр, но теперь пришло время познакомиться с ее дополнительными возможностями. После строки текста, которую мы хотим напечатать, можно указать через запятую сколь угодно много переменных, значение которых потом можно будет вставлять в текстовую строку с помощью шаблона «{x}», где x – это порядковый номер переменной в списке. Нумерация переменных начинается с нуля, поэтому для вставки значения переменной «a» используется шаблон подстановки «{0}».

2.2 Типы данных

Назначение компьютеров заключается в том, чтобы обрабатывать данные. И не важно, что мы делаем за компьютером, – рассчитываем траекторию баллистической ракеты или играем в линейку, на входе всегда есть данные, а на выходе результат их обработки. А уж то, насколько полезными будут эти результаты, остается полностью на совести пользователя. Далее мы рассмотрим элементарные типы и те, что являются встроенными в язык C#.

Элементарные типы данных

Устройство компьютера таково, что изначально он умеет работать только с двоичной системой счисления, в которой наименьшей единицей хранения информации является бит (сокращение от англ. bi nary digi t, двоичное число; название так же совпадает с реально существующим словом bit, которое переводится как «немного», что тоже подходит).

Бит может принимать только два состояния, поэтому с его помощью, например, можно сохранить статус флажка: если флажок установлен, то бит равен единице, если сброшен, то нулю.


Рис. 2-4 Один бит

Но одного бита становится недостаточно, когда нам нужно работать с числами или буквами, поэтому их довольно часто объединяют в группы по 8 штук – байты. Самый правый бит в этой последовательности имеет порядковый номер 0 и называется «младшим», а самый левый с номером 7 – «старшим».


Рис. 2-3 Внутреннее устройство байта,
в котором закодировано число «206»

Биты часто называют также разрядами, поэтому говорят, что байт представляет собой 8-разрядный тип данных. Есть типы данных, объединяющие несколько байтов, с разрядностью 16, 32 и даже 64 бита.

Когда говорят об объеме оперативной памяти или размерах жесткого диска, используют производные величины от байта: килобайт, мегабайт, гигабайт и терабайт. Не смотря на то, что метрические приставки были взяты из физики (килограмм, мегатонная, гигагерц, тераджоуль), их нельзя интерпретировать дословно. То есть кило – это не тысяча, мега – не миллион.

Исторически сложилось, что данные приставки со словом «байт» используют некорректно. Вместо 1000 = 103 принято 1024 = 210. Сделано это было преднамеренно, чтобы исключить неоправданных округлений. И весь мир принял эту идею, отсюда и путаница. Если ты хочешь не быть дураком, тебе придется запомнить, что 1 Кбайт = 1024 байт,
1 Мбайт = 1024 Кбайт, 1 Гбайт = 1024 Мбайт, 1 Тбайт = 1024 ГБайт и т. д.

Счет в двоичной системе

Давай вспомним, как происходит счет в привычной тебе десятичной системе: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12… Обрати внимание на число 10. Как только у тебя уже нет возможности увеличивать самый младший разряд, ты его сбрасываешь и увеличиваешь следующий. В двоичной системе все происходит точно так же, только каждое из чисел может принимать всего два значения, поэтому счет получается короткий: 02, 12, 102, 112, 1002, и так далее. Чтобы не путать число десять с числом один-ноль в двоичной системе, к числу добавляют нижний индекс «2». Давай рассмотрим этот процесс подробнее.

Число в десятичной системе Число в двоичной системе Значение
  00002 Сбрасываем все биты
  00012 Прибавляем 1 к 0-му разряду.
  00102 Прибавляем 1 к 0-му разряду. Получаем число 10. Записываем 0, а 1 переносим на разряд выше.
  00112 Прибавляем 1 к 0-му разряду.
  01002 Прибавляем 1 к 0-му разряду. Получаем число 10. Записываем 0, а 1 переносим на разряд выше. Прибавляем 1 к 1-му разряду. Получаем число 10. Записываем 0, а 1 переносим на разряд выше.

 

Как «прочитать» двоичное число

Допустим, у тебя в кармане 423 рубля. Ты воспринимаешь это число целиком «четыреста двадцать три», но когда ты только начинал знакомиться с математикой, тебя учили, что 423 = 4*100 + 2*10 + 3. Возможно, что ты даже вспомнишь, как тебя мучили вопросами, сколько единиц, десятков и сотен в том или ином числе. Только ты не задумывался тогда, что эти единицы, десятки и сотни связаны с тем, что мы используем десятичную систему счисления. На самом деле, полной будет следующая запись 423 = 4*102 + 2*101 + 3*100, где 10 – это «основание» используемой системы счисления, а степени 2, 1 и 0 ни что иное, как порядковые номера разрядов.

Двоичные числа нужно воспринимать точно также. Только вместо числа «10» у них в основании будет число «2». Учитель информатики поставил Саше за контрольную 1012. Давай определим, что это за отметка, и тогда нам станет ясно, какие у Саши будут эмоции.

1012 =
= 1*22 + 0*21 + 1*20 =
= 4 + 0 + 1 =
= 510

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...