Что обозначает тип данных boolean в языке программирования vba

Сводка типов данных (Visual Basic)

в следующей таблице показаны типы данных Visual Basic, поддерживаемые типы среды clr, их номинальное выделение памяти и диапазоны значений.

тип Visual Basic Структура типа среды CLR Номинальное выделение памяти Диапазон значений
Boolean Boolean Зависит от реализации платформы True либо False
Byte Byte 1 байт от 0 до 255 (без знака)
Char (одиночный символ) Char 2 байта от 0 до 65535 (без знака)
Дата DateTime 8 байт 0:00:00 (полночь) 1 января 0001 г. по 11:59:59 – 31 декабря 9999
Десятичное число Decimal 16 байт от 0 до +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9. E + 28) † без десятичной запятой; от 0 до +/-7.9228162514264337593543950335 с 28 разрядами справа от десятичного разделителя;

наименьшее ненулевое число — +/-0,0000000000000000000000000001 (+/-1E-28) †

Double (число с плавающей запятой двойной точности) Double 8 байт -1.79769313486231570 e + 308 до-4.94065645841246544 E-324 † для отрицательных значений;

4.94065645841246544 e-324 до 1.79769313486231570 E + 308 † для положительных значений

Integer Int32 4 байта от-2 147 483 648 до 2 147 483 647 (подписано)
Long (длинное целое) Int64 8 байт от-9223372036854775808 до 9 223 372 036 854 775 807 (от а до 18 † ) (подписано)
Объект Object см 4 байта на 32-разрядной платформе

8 байт на 64-разрядной платформе

Любой тип может храниться в переменной типа Object
SByte SByte 1 байт от-128 до 127 (подписано)
Short (короткое целое) Int16 2 байта от-32 768 до 32 767 (подписано)
Single (с плавающей запятой одиночной точности) Single 4 байта -4028235E e + 38 – 1.401298 E-45 † для отрицательных значений;

1.401298 e-45 до 4028235E E + 38 † для положительных значений

Строка (переменная длина) String см Зависит от реализации платформы от 0 до приблизительно 2 000 000 000 символов Юникода
UInteger UInt32 4 байта от 0 до 4 294 967 295 (без знака)
ULong UInt64 8 байт от 0 до 18446744073709551615 (1.8. E + 19 † ) (без знака)
Определяемый пользователем (структура) (наследует от ValueType ) Зависит от реализации платформы Каждый элемент структуры имеет диапазон, определяемый типом данных и не зависящий от диапазонов других элементов.
UShort UInt16 2 байта от 0 до 65 535 (без знака)

† В экспоненциальном представлении«E» означает степень числа 10. Итак, 3.56 E + 2 означает 3,56 x 10 или 356, а 3.56 e-2 — 3,56/10 2 или 0,0356.

Для строк, содержащих текст, используйте StrConv функцию для преобразования одного текстового формата в другой.

Помимо указания типа данных в операторе объявления, можно принудительно задать тип данных некоторых элементов программирования с помощью символа типа. См. раздел символы типа.

Затраты памяти

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

служба хранилища Сваивать. Среда CLR может назначать хранилище на основе текущих характеристик платформы, в которой выполняются приложения. Если память почти заполнена, она может упаковать объявленные элементы как можно ближе друг к другу. В других случаях адреса памяти могут быть согласованы с естественными аппаратными границами для оптимизации производительности.

Ширина платформы. назначение служба хранилища на 64-разрядной платформе отличается от назначения на 32-разрядной платформе.

Составные типы данных

Те же рекомендации применимы к каждому элементу составного типа данных, такому как структура или массив. Вы не можете полагаться на простое сложение номинальных выделений памяти для членов типа. Кроме того, существуют и другие рекомендации, например следующие:

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

служба хранилища Режим. Нельзя безопасно предположить, что порядок хранения в памяти совпадает с порядком объявления. Вы даже не можете делать предположения относительно выравнивания байтов, например 2-байтовой или 4-байтовой границы. При определении класса или структуры и необходимости управления структурой хранения его элементов можно применить StructLayoutAttribute атрибут к классу или структуре.

Издержки объекта

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

Источник

Логические выражения (Visual Basic)

Два значения оператора =

Обратите внимание, что оператор присваивания newCustomer = True выглядит так же, как выражение в предыдущем примере, но выполняет другую функцию и используется по-разному. В предыдущем примере выражение newCustomer = True представляет логическое значение, а = знак интерпретируется как оператор сравнения. В изолированном операторе = знак интерпретируется как оператор присваивания и присваивает значение справа переменной слева. Это показано в следующем примере.

Дополнительные сведения см. в разделе сравнения значений и инструкции.

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

Операторы сравнения в сочетании с логическими операторами

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

Операторы Short-Circuiting

Логические операторы AndAlso и OrElse демонстрируют поведение, называемое сокращенным вычислением. Оператор сокращенного вычисления сначала вычисляет левый операнд. Если левый операнд определяет значение всего выражения, выполнение программы продолжается без вычисления правого выражения. Это показано в следующем примере.

Сравнение с операторами, не являющимися сокращенными

Выражения в скобках

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

Источник

Сводка типов данных

Тип данных — это характеристика переменной, определяющая тип содержащихся в ней данных. К типам данных относятся типы, указанные в таблице ниже, а также пользовательские типы и определенные типы объектов.

Набор встроенных типов данных

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

Тип данных Размер хранилища Диапазон
Boolean 2 байта True или False
Byte 1 байт от 0 до 255
Collection Неизвестно Неизвестно
Currency (масштабируемое целое число) 8 байт от –922 337 203 685 477,5808 до 922 337 203 685 477,5807
Date 8 байт от 1 января 100 г. до 31 декабря 9999 г.
Decimal 14 байт +/–79 228 162 514 264 337 593 543 950 335 без десятичной запятой

+/–7,9228162514264337593543950335 с 28 разрядами справа от десятичной запятой

Наименьшее ненулевое число равно +/–0,0000000000000000000000000001

Dictionary Неизвестно Неизвестно
Double (число с плавающей запятой двойной точности) 8 байт от –1,79769313486231E308 до –4,94065645841247E-324 для отрицательных значений

от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений

Integer 2 байта от –32 768 до 32 767
Long (целое число Long) 4 байта от –2 147 483 648 до 2 147 483 647
LongLong (целое число LongLong) 8 байт от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Действительно только для 64-разрядных платформ.

LongPtr (целое число Long в 32-разрядных системах, целое число LongLong в 64-разрядных системах) 4 байта в 32-разрядных системах

8 байт в 64-разрядных системах

от –2 147 483 648 до 2 147 483 647 в 32-разрядных системах

от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 в 64-разрядных системах

Object 4 байта Любая ссылка на Object
Single (число с плавающей запятой одинарной точности) 4 байта от –3,402823E38 до –1,401298E-45 для отрицательных значений

от 1,401298E-45 до 3,402823E38 для положительных значений

String (переменная длина) 10 байтов + длина строки от 0 до приблизительно 2 миллиардов
String (фиксированная длина) Длина строки от 1 до приблизительно 65 400
Variant (с числами) 16 байт Любое числовое значение до диапазона типа Double
Variant (с символами) 22 байта + длина строки (24 байтов в 64-разрядных системах) Тот же диапазон как для типа String переменной длины
Определяется пользователем (используя Type) Число, необходимое для элементов Диапазон каждого элемента совпадает с диапазоном его типа данных.

Тип Variant, содержащий массив, требует на 12 байт больше, чем сам массив.

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

Например, данные в одномерном массиве, состоящем из 4 элементов данных Integer размером 2 байта каждый занимают 8 байтов. 8 байтов, необходимых для данных, плюс 24 байта служебных данных составляют 32 байта полной памяти, требуемой для массива. На 64-разрядных платформах массив SAFEARRAY занимает 24 бита (плюс 4 байта на оператор Dim). Элемент pvData является 8-байтным указателем, и он должен находиться в границах 8 байтов.

Тип LongPtr не является настоящим типом данных, так как он преобразуется в тип Long в 32-разрядных средах или в тип LongLong в 64-разрядных средах. Тип LongPtr должен использоваться для представления указателя и обработки значений в операторах Declare и позволяет писать переносимый код, который может выполняться как в 32-разрядных, так и в 64-разрядных средах.

Для преобразования одного типа строковых данных в другой используется функция StrConv.

Преобразование между типами данных

В статье Функции преобразования типов приведены примеры использования следующих функций для приведения выражения к определенному типу данных: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CLngLng, CLngPtr, CSng, CStr и CVar.

Ниже приведены страницы соответствующих функций: CVErr, Fix и Int.

Функция CLngLng действительна только для 64-разрядных платформ.

Проверка типов данных

Чтобы проверить типы данных, ознакомьтесь с приведенными ниже функциями.

Возвращаемые значения функции CStr

Если expression CStr возвращает
Boolean Строка, содержащая значение True или False.
Date Строка, содержащая полный или краткий формат даты, установленный в системе.
Empty Строка нулевой длины («»).
Error Строка, содержащая слово Error и номер ошибки.
Null Ошибка во время выполнения.
Другое числовое значение Строка, содержащая число

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Типы данных результатов оператора (Visual Basic)

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

Диапазоны типов данных

Диапазоны соответствующих типов данных в порядке от меньшего к большему, имеют следующий вид:

SByte, Byte — 256 возможных целочисленных значений

Short, UShort — 65 536 (6.5. E + 4) возможные целочисленные значения

Integer, UInteger — 4 294 967 296 (4.2. E + 9) возможных целочисленных значений

Long, ulong — 18446744073709551615 (1.8. E + 19) возможных целочисленных значений

Десятичное число — 1.5. E + 29 возможных целочисленных значений, максимальный диапазон 7,9. E + 28 (абсолютное значение)

Single — максимальный диапазон 3.4. E + 38 (абсолютное значение)

Double — максимальный диапазон 1.7. E + 308 (абсолютное значение)

дополнительные сведения о типах данных Visual Basic см. в разделе типы данных.

если операнду присвоено значение Nothing, то арифметические операторы Visual Basic обрабатывают его как ноль.

Десятичная арифметика

Обратите внимание, что тип данных Decimal не является ни типом с плавающей запятой, ни целым числом.

Арифметические Floating-Point

Операторы/и ^

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

Decimal Single Double Любой целочисленный тип
Decimal Decimal Single Double Decimal
Single Single Single Double Single
Double Double Double Double Double
Любой целочисленный тип Decimal Single Double Double

Целочисленная арифметика

Тип данных результата целочисленной операции зависит от типов данных операндов. как правило, Visual Basic использует следующие политики для определения типа данных result:

Если неподписанный операнд участвует в подписанном операнде, то результат имеет тип со знаком, содержащий по меньшей мере один из операндов с диапазоном.

В противном случае результат обычно имеет больший из двух типов данных операндов.

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

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

Унарные операторы + и –

Boolean SByte Byte Short UShort Integer UInteger Long ULong
Унар + Short SByte Byte Short UShort Целочисленный тип UInteger Long ULong
Унар – Short SByte Short Short Целочисленный тип Целое число Long Long Decimal

Операторы>

Boolean SByte Byte Short UShort Integer UInteger Long ULong
, >> Short SByte Byte Short UShort Целочисленный тип UInteger Long ULong

Бинарные операторы +, –, * и mod

Boolean SByte Byte Short UShort Integer UInteger Long ULong
Boolean Short SByte Short Short Целочисленный тип Целое число Long Long Decimal
SByte SByte SByte Short Short Целочисленный тип Целое число Long Long Decimal
Byte Short Short Byte Short UShort Целочисленный тип UInteger Long ULong
Short Short Short Short Short Целочисленный тип Целое число Long Long Decimal
UShort Целочисленный тип Целое число UShort Целое число UShort Целочисленный тип UInteger Long ULong
Integer Целочисленный тип Целочисленный тип Целочисленный тип Целочисленный тип Целочисленный тип Целое число Long Long Decimal
UInteger Long Long UInteger Long UInteger Long UInteger Long ULong
Long Long Long Long Long Long Long Long Long Decimal
ULong Decimal Decimal ULong Decimal ULong Decimal ULong Decimal ULong

Оператор \

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

Boolean SByte Byte Short UShort Integer UInteger Long ULong
Boolean Short SByte Short Short Целочисленный тип Целое число Long Long Long
SByte SByte SByte Short Short Целочисленный тип Целое число Long Long Long
Byte Short Short Byte Short UShort Целочисленный тип UInteger Long ULong
Short Short Short Short Short Целочисленный тип Целое число Long Long Long
UShort Целочисленный тип Целое число UShort Целое число UShort Целочисленный тип UInteger Long ULong
Integer Целочисленный тип Целочисленный тип Целочисленный тип Целочисленный тип Целочисленный тип Целое число Long Long Long
UInteger Long Long UInteger Long UInteger Long UInteger Long ULong
Long Long Long Long Long Long Long Long Long Long
ULong Long Long ULong Long ULong Long ULong Long ULong

Реляционные и побитовые сравнения

Оператор побитового не

В следующей таблице показаны типы данных результата для побитового Not оператора.

Boolean SByte Byte Short UShort Integer UInteger Long ULong
Not Логический SByte Byte Short UShort Целочисленный тип UInteger Long ULong

Побитовые операторы and, OR и XOR

Boolean SByte Byte Short UShort Integer UInteger Long ULong
Boolean Логический SByte Short Short Целочисленный тип Целое число Long Long Long
SByte SByte SByte Short Short Целочисленный тип Целое число Long Long Long
Byte Short Short Byte Short UShort Целочисленный тип UInteger Long ULong
Short Short Short Short Short Целочисленный тип Целое число Long Long Long
UShort Целочисленный тип Целое число UShort Целое число UShort Целочисленный тип UInteger Long ULong
Integer Целочисленный тип Целочисленный тип Целочисленный тип Целочисленный тип Целочисленный тип Целое число Long Long Long
UInteger Long Long UInteger Long UInteger Long UInteger Long ULong
Long Long Long Long Long Long Long Long Long Long
ULong Long Long ULong Long ULong Long ULong Long ULong

Прочие операторы

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Что обозначает субконто в программе 1с предприятие
  • Что обозначает программное обеспечение
  • Что обозначает программа гигиена на стиральной машине
  • Что обозначает понятие уровень языка программирования
  • Что обозначает крякнутая программа

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии