6. Виды переменных в Bascom



Автор: WildCat

На страницах часто встречается такое слово, "переменная". А кто-нибудь вообще объяснил, что это такое? А это всего лишь мнемоническое представление ячейки памяти с некоторыми данными, которе используется в процедурах для быстрого осуществления доступа к памяти. Ничего сложного, правда? Мы используем слово переменная, подразумевая, что данные в этой злосчастной ячейке могут изменяться. (а если данные не меняются, то такие ущербные переменные мы называем константы)
Давайте для примера как-нибудь обозначим количество букв в слове. Объявим переменную BUKVO. В слове хренлогрыз десять букв. Поэтому положим в переменную BUKVO значение 10. В реальности мы положим число 10 в область памяти, зарезервированную переменной BUKVO. Когда в программе мы обратимся к этой переменной, BASCOM на самом деле обратится к участку памяти, закрепленному за этой переменной. Компилятор сам придумывает и запоминает, где какую переменную хранить. Нам об этом можно даже не думать.

Имена переменных
Имя переменной может быть до 32 символов длиной. В названии можно использовать цифры и латинские буковки. Убедитесь, что выбранное имя не совпадает со служебными словами. Например, нельзя создавать переменную с названием "Config". Имена переменных НЕ чувствительны к регистру.

В BASCOM есть следующие типы переменных:

Bit
Хранит значение 0 или 1. Используйте этот тип для хранения состояния кнопки, переключателя, ножки порта ввода/вывода - всего, что может быть включено или выключено.


Byte
Хранит в памяти один байт (8 бит). Испотльзуйте этот тип для хранения числа от 0 до 255 или для символа. Особенно полезно использовать этот тип в маленьких МК, когда память очень ограничена. Храните в этой переменной любое число, которое сюда влезет. Но помните: если к переменной типа byte со значением 255 прибавить 1, то она сбросится до 0.


Integer
Эта переменная занимает в памяти два байта и хранит числа от -32768 до +32767. Так как один бит зарезервирован под знак числа, оставшиеся 15 делятся пополам на положительные и отрицательные значения. Храните в этом типе все числа, которым нужен знак, а также все числа, которые вписываются в указанный диапазон. Кстати, при переполнении переменной данного типа, её значение изменится с +32767 на -32768.


Word
Это двухбайтный тип, не имеющий знака. Для хранения числа доступны все 16 бит, поэтому диапазон допустимых чисел от 0 до 65535. Эту переменную можно использовать для сравнительно больших величин, не имеющих знака. При переполнении значение 65535 изменяется до 0.


Long
Переменная такого типа занимает в памяти 4 байта. Из 32 бит один отводится под знак, а все остальные хранят модуль числа. Таким образом, хранимый диапазон составляет от -2147483648 до +2147483647. В переменной типа Long можно хранить все значения, которые не влезли в Integer. При переполнении, как и все переменные, сбросится до минимального значения диапазона.


Single
Четырехбайтный тип для хранения чисел с плавающей точкой. Запоминает числа от 1.5х10^45 до 3.4х10^38 со знаком. Используйте только его для хранения дробных чисел. Например, если вы положите число 3.1415926 в переменную типа Integer, то обратно получите только 3, так как дробная часть пропадет. Переменная типа Single может хранить большой диапазон дробных положительных и отрицательных чисел. Но будьте внимательны: вы можете потерять некоторую точность при преобразованиях. Например:

Dim A as Single 'Объявим переменную A типа Single
A = 0.987654321 'Положим в нее некоторое число

После этих операций в переменной A окажется значение 0.9876543. Это потому, что переменная помнит 9 символов (включая целую часть и точку).


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

Главное в выборе типа переменной - определиться, какие типы данных в ней будут храниться. Выбирайте тип наименьшего размера, в который еще вписывается необходимое число, чтобы не тратить память попусту. Также помните, что при использовании типа Integer программа будет гораздо компактнее и быстрее, чем при использовании типа Single. Операции с плавающими точками во все времена были довольно медленным занятием.



DECADALAB ALFA