ИЗУЧЕНИЕ ACTIONSCRIPT 3.0 | 59 |
Язык ActionScript и его синтаксис
Максимальное и минимальное значения, которые может воспроизводить класс Number, хранятся в статических свойствах класса Number, называемых Number.MAX_VALUE иNumber.MIN_VALUE.
Number.MAX_VALUE == 1.79769313486231e+308
Number.MIN_VALUE == 4.940656458412467e-324
Расплатой за возможность использовать столь огромный диапазон значений является точность. Тип данных Number использует 52 разряда для хранения значимой части числа, в результате числа, которым требуется больше 52 разрядов для точного воспроизведения, например 1/3, отображаются как приближенные значения. Если для приложения требуется абсолютная точность в работе с десятичными числами, необходимо использовать программное обеспечение, реализующее десятичные арифметические операции с плавающей точкой в качестве альтернативы двоичным операциям.
При сохранении целых значений с помощью типа данных Number для значимой части числа используется только 52 разряда. Тип данных Number использует эти 52 разряда и специальный скрытый разряд для представления целых чисел в диапазоне от -9007199254740992(-253)до 9007199254740992 (253).
Значение NaN используется не только как значение по умолчанию для переменных с типомNumber, но также в качестве результата любой операции, которая должна возвращать число, но не делает этого. Например, при попытке рассчитать квадратный корень отрицательного числа результатом будетNaN. Другими специальным значениями типа Number являютсяплюс бесконечность иминус бесконечность.
Примечание. Результатом деления на0 является толькоNaN, если делитель тоже0. В результате деления на0 получаетсяinfinity, если делимое положительно, или-infinity,если делимое отрицательно.
Тип данных String передает последовательность 16-разрядныхсимволов. Для внутреннего хранения значений с типом String используются символы Unicode и форматUTF-16.Значения с типом данных String являются постоянными, такими же, как и при программировании в языке Java. Операция со значением String возвращает новый экземпляр этой строки. По умолчанию значением для переменной, объявленной с типом данных String, являетсяnull. Значениеnull не равнозначно пустой строке («»). Значениеnull обозначает, что в переменной не сохранено значение, а пустая строка обозначает, что в переменной сохранено значение строкового типа String, не содержащее символов.
Для внутреннего хранения типа данных uint используются 32-разрядныецелые числа без знака. Этот тип данных содержит диапазон целых значений от 0 до 4294967295 (232 — 1) включительно. Тип данных uint применяется в особых случаях, когда необходимы положительные целые числа. Например, следует использовать тип данных uint для передачи значений цвета пиксела, поскольку тип данных int имеет внутренний разряд для знака, не удобный для обработки цветовых значений. Для целых значений, больших, чем максимальное значение uint, следует использовать тип данных Number, который позволяет обрабатывать53-разрядныецелые значения. По умолчанию значение переменной с типом данных uint равно 0.
Тип данных void содержит только одно значение undefined. В предыдущих версиях ActionScript значениеundefined было значением по умолчанию для экземпляров класса Object. В ActionScript 3.0 значением по умолчанию для экземпляров Object являетсяnull. При попытке назначить значениеundefined экземпляру объекта Object значение преобразуется вnull. Переменной, для которой не задан тип, можно назначить только значениеundefined. Переменные без указания типа — это переменные, для которых либо отсутствует любая аннотация типа, либо указан символ звездочки (*) в качестве аннотации типа. Значениеvoid можно использовать только для аннотации возвращаемого типа.
studfiles.net
тип данных uint | фразы | |
прогр. | uint datatype ( ssn); uint data type (ssn) |
тип данных | |
вчт. | datatype; type of data (Pothead) |
Майкр. | Long data type; data type A property of a field that defines the kinds of data the field can store |
сет.пл. | media type (Alex_Odeychuk) |
SAP.тех. | characteristic format |
тип данных timestamp | |
вчт. | timestamp datatype |
тип данных datetime | |
прогр. | datetime data type (ssn); datetime data-type (ssn); datetime datatype (ssn) |
тип данных timestamp | |
прогр. | timestamp data type (ssn); timestamp data-type (ssn) |
тип данных smallint | |
вчт. | small integer |
типы данных | |
образ. | types (ssn) |
тип данных smalldatetime | |
прогр. | smalldatetime datatype (ssn); smalldatetime data type (ssn) |
тип данных smallmoney | |
прогр. | smallmoney data type (ssn); smallmoney datatype (ssn) |
типы данных | |
прогр. | data types (ssn); types of data (ssn) |
тип данных char | |
прогр. | char data type (ssn) |
тип данных String | |
прогр. | string data type (ssn); string datatype (ssn) |
тип данных void | |
прогр. | void data type (ssn ); void datatype (ssn) |
тип данных bit | |
прогр. | bit datatype (ssn) |
тип данных char | |
прогр. | char datatype (ssn) |
тип данных cursor | |
прогр. | cursor datatype (ssn) |
тип данных float | |
прогр. | float datatype (ssn) |
тип данных int | |
прогр. | int datatype (ssn) |
тип данных nchar | |
прогр. | nchar datatype (ssn) |
тип данных Null | |
прогр. | Null datatype (ssn) |
тип данных nvarchar | |
прогр. | nvarchar datatype (ssn) |
тип данных smallint | |
прогр. | smallint datatype (ssn) |
тип данных text | |
прогр. | text datatype (ssn) |
тип данных bit | |
прогр. | bit data type (ssn) |
тип данных cursor | |
прогр. | cursor data type (ssn) |
тип данных float | |
прогр. | float data type (ssn) |
тип данных int | |
прогр. | int data type (ssn) |
тип данных nchar | |
прогр. | nchar data type (ssn) |
тип данных Null | |
прогр. | Null data type (ssn) |
тип данных nvarchar | |
прогр. | nvarchar data type (ssn) |
тип данных smallint | |
прогр. | smallint data type (ssn) |
тип данных table | |
прогр. | table data type (ssn); table datatype (ssn) |
тип данных text | |
прогр. | text data type (ssn) |
тип данных double | |
Майкр. | Double data type; Double data type A fundamental data type that holds double-precision floating-point numbers. It’s stored as a 64-bit number ranging in value from approximately -1.797E308 to -4.940E-324 (negative), from 4.94E-324 to 1.797E308 (positive), and 0 |
тип данных ActionScript | |
прогр. | ActionScript datatype (ssn) |
тип данных uniqueidentifier | |
прогр. | uniqueidentifier datatype (ssn) |
тип данных ActionScript | |
прогр. | ActionScript data type (ssn) |
тип данных uniqueidentifier | |
прогр. | uniqueidentifier data type (ssn) |
тип данных real | |
прогр. | real data type (ssn) |
типы данных CTS | |
прогр. | common type system data types (ssn); CTS data types (ssn) |
тип данных Array | |
прогр. | array data type (ssn) |
тип данных bigint | |
прогр. | bigint datatype (ssn) |
тип данных Array | |
прогр. | Array datatype (ssn) |
тип данных C | |
прогр. | C datatype (ssn) |
тип данных decimal | |
прогр. | decimal datatype (ssn) |
тип данных image | |
прогр. | image datatype (ssn) |
тип данных money | |
прогр. | money datatype (ssn) |
тип данных ntext | |
прогр. | ntext datatype (ssn) |
тип данных Number | |
прогр. | Number datatype (ssn) |
тип данных Object | |
прогр. | Object datatype (ssn) |
тип данных real | |
прогр. | real datatype (ssn) |
тип данных tinyint | |
прогр. | tinyint datatype (ssn) |
тип данных varchar | |
прогр. | varchar datatype (ssn) |
тип данных bigint | |
прогр. | bigint data type (ssn) |
тип данных C | |
прогр. | C data type (ssn) |
тип данных decimal | |
прогр. | decimal data type (ssn) |
тип данных image | |
прогр. | image data type (ssn) |
тип данных money | |
прогр. | money data type (ssn) |
тип данных ntext | |
прогр. | ntext data type (ssn) |
тип данных Number | |
прогр. | Number data type (ssn) |
тип данных Object | |
прогр. | object data type (ssn) |
тип данных tinyint | |
прогр. | tinyint data type (ssn) |
тип данных varchar | |
прогр. | varchar data type (ssn) |
www.multitran.com
Последнее обновление: 20.12.2017
Все данные, которые хранятся в памяти, по сути представляют просто набор битов. И именно тип данных определяет, как будут интерпретироваться эти данные и какие операции с ними можно произодить. Язык Go является статически типизированным языком, то есть все используемые в программе данные имеют определенный тип.
Go имеет ряд встроенных типов данных, а также позволяет определять свои типы. Рассмотрим базовые встроенные типы данных, которые мы можем использовать.
Ряд типов представляют целые числа:
int8: представляет целое число от -128 до 127 и занимает в памяти 1 байт (8 бит)
int16: представляет целое число от -32768 до 32767 и занимает в памяти 2 байта (16 бит)
int32: представляет целое число от -2147483648 до 2147483647 и занимает 4 байта (32 бита)
int64: представляет целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт (64 бита)
uint8: представляет целое число от 0 до 255 и занимает 1 байт
uint16: представляет целое число от 0 до 65535 и занимает 2 байта
uint32: представляет целое число от 0 до 4294967295 и занимает 4 байта
uint64: представляет целое число от 0 до 18 446 744 073 709 551 615 и занимает 8 байт
byte: синоним типа uint8
, представляет целое число от 0 до 255 и занимает 1 байт
rune: синоним типа int32
, представляет целое число от -2147483648 до 2147483647 и занимает 4 байта
int: представляет целое число со знаком, которое в зависимости о платформы может занимать либо 4 байта, либо 8 байт. То есть соответствовать либо int32, либо int64.
uint: представляет целое беззнаковое число только без знака, которое, аналогично типу int, в зависимости о платформы может занимать либо 4 байта, либо 8 байт. То есть соответствовать либо uint32, либо uint64.
Здесь несложно запомнить, что есть типы со знаком (то есть которые могут быть отрицательными) и есть безнаковые положительные типы, которые начинаются на префикс u (uint32). Ну и также есть byte — синоним для uint8 и rune — синоним для int32.
Стоит отметить типы int и uint. Они имеют наиболее эффективный размер для определенной платформы (32 или 64 бита). Это наиболее используемый тип для представления целых чисел в программе. Причем различные компиляторы могут предоставлять различный размер для этих типов даже для одной и той же платформы.
Примеры определения переменных, которые представляют целочисленные типы:
var a int8 = -1 var b uint8 = 2 var c byte = 3 // byte - синоним типа uint8 var d int16 = -4 var f uint16 = 5 var g int32 = -6 var h rune = -7 // rune - синоним типа int32 var j uint32 = 8 var k int64 = -9 var l uint64 = 10 var m int = 102 var n uint = 105
Для представления дробных чисел есть два типа:
float32: представляет число с плавающей точкой от 1.4*10-45 до 3.4*1038(для положительных). Занимает в памяти 4 байта (32 бита)
float64: представляет число с плавающей точкой от 4.9*10-324 до 1.8*10308 (для положительных) и занимает 8 байт.
Тип float32 обеспечивает шесть десятичных цифр точности, в то время как точность, обеспечиваемая типом float64, составляет около 15 цифр
Примеры использования типов float32 и float64:
var f float32 = 18 var g float32 = 4.5 var d float64 = 0.23 var pi float64 = 3.14 var e float64 = 2.7
В качестве разделителя между целой и дробной частью применяется точка.
Существуют отдельные типы для представления комплексных чисел:
complex64: комплексное число, где вещественная и мнимая части представляют числа float32
complex128: комплексное число, где вещественная и мнимая части представляют числа float64
Пример использования:
var f complex64 = 1+2i var g complex128 = 4+3i
Логический тип или тип bool может иметь одно из двух значений: true (истина) или false (ложь).
var isAlive bool = true var isEnabled bool = false
Строки представлены типом string. В Go строке соответствует строковый литерал — последовательность символов, заключенная в двойные кавычки:
var name string = "Том Сойер"
Кроме обычных символов строка может содержать специальные последовательности (управляющие последовательности), которые начинаются с обратного слеша \. Наиболее распространенные последовательности:
\n: переход на новую строку
\r: возврат каретки
\t: табуляция
\»: двойная кавычка внутри строк
\\: обратный слеш
Если переменной не присвоено значение, то она имеет значение по умолчанию, которое определено для ее типа. Для числовых типов это число 0, для логического типа — false, для строк — «»(пустая строка).
При определении переменной мы можем опускать тип в том случае, если мы явно инициализируем переменную каким-нибудь значением:
var name = "Tom"
В этом случае компилятор на основании значения неявно выводит тип переменной. Если присваивается строка, то то соответственно переменная будет представлять тип string, если присваивается целое число, то переменная представляет тип int и т.д.
То же самое по сути происходит при кратком определении переменной, когда также явным образом не указывается тип данных:
name := "Tom"
При этом стоит учитывать, что если мы не указываем у переменной тип, то ей обязательно надо присвоить некоторое начальное значение. Объявление переменной одновременно без указания типа данных и начального значения будет ошибкой:
var name // ! Ошибка
Надо либо указать тип данных (в этом случае переменная будет иметь значение по умолчанию):
var name string
Либо указать начальное значение, на основании которого выводится тип данных:
var name = "Tom"
Либо и то, и другое одновременно:
var name string = "Tom"
Неявная типизация нескольких переменных:
var ( name = "Tom" age = 27 )
или так:
var name, age = "Tom", 27
metanit.com
В течение многих лет через несколько организаций и различные проекты, связанные с C/C++, я видел, что потребность в целых числах фиксированной ширины была устранена определение локальной версии types.h
, которая будет в основном выглядеть следующим образом: —
typedef signed char int8;
typedef unsigned char uint8;
typedef signed short int16;
typedef unsigned short uint16;
typedef signed long int32;
typedef unsigned long uint32
typedef signed long long int64;
typedef unsigned long long uint64;
Почему они не получают интегрированный в C/C++ стандартов C?
Я знаю C99
стандартизовал подобные uint32_t
. Точно так же Microsoft определила его собственной UINT32
и т.д .. — Но это все еще требует typedef
сек, так как
использования uintX жаргона широко распространено среди наследия, а также новый код, написанного опытными разработчики
сознают также о Boost Integer Library — Опять это не стандарт C++, поскольку они четко отметить: —
поскольку эти заголовки наддува, их имена соответствуют росту заголовка соглашения об именах, а не C++ заголовок стандартной библиотеки именования конвенции.
Мысли о плюсах против интеграции [u]intX
s в официальные стандарты?
EDIT:
Этот вопрос сгенерированные качество ответов и мнения уже. Спасибо, они информативны и полезны !! Некоторые комментарии предполагают, что вопрос не достаточно ясно: —
«вы спрашиваете конкретно о добавлении больше псевдонимов для уже существующих определений типов в стандарте» — Да точно
@Pascal Cuoq «S анс адреса реальная проблема в случае, если они должны были быть добавлена к стандартам: —
не ждите от имени
uint32
стать официальным названием типа целого числа в C++; это, вероятно, никогда не произойдет, именно потому, что так много программ уже typedef’ing типа с этим именем.
stackoverrun.com
Все данные в языке Си имеют свой тип. Переменные определенных типов занимают в памяти какое-то место, разное в зависимости от типа. В Си нет четкого закрепления количества памяти за определенными типами. Это отдано на реализацию конкретного компилятора под конкретную платформу. Например, переменная типа int в одном компиляторе может занимать в памяти 16 бит, в другом — 32 бита, в третьем — 8 бит. Все определяет конкретный компилятор. Правда, все стремятся к универсализации, и в основном в большинстве компиляторов тип int, например, занимает 2 байта, а тип char — один.
Я в последнее время немного затупил, не мог вспомнить, сколько байт занимает тип double в AVR-GCC. Обычно при программировании контроллеров работаешь с целочисленными типами, типа int и char, а к типам с плавающей точкой прибегаешь не часто, в связи с их ресурсоемкостью.
Поэтому, на будущее, оставлю себе здесь памятку с указанием размеров занимаемой памяти типами данных для компилятора AVR-GCC и диапазон изменения переменных этого типа.
Тип | Размер в байтах (битах) | Интервал изменения |
---|---|---|
char | 1 (8) | -128 .. 127 |
unsigned char | 1 (8) | 0 .. 255 |
signed char | 1 (8) | -128 .. 127 |
int | 2 (16) | -32768 .. 32767 |
unsigned int | 2 (16) | 0 .. 65535 |
signed int | 2 (16) | -32768 .. 32767 |
short int | 2 (16) | -32768 .. 32767 |
unsigned short int | 2 (16) | 0 .. 65535 |
signed short int | 2 (16) | -32768 .. 32767 |
long int | 4 (32) | -2147483648 .. 2147483647 |
unsigned long int | 4 (32) | 0 .. 4294967295 |
signed long int | 4 (32) | -2147483648 .. 2147483647 |
float | 4 (32) | 3.4Е-38 .. 3.4Е+38 |
double | 4 (32) | 3.4Е-38 .. 3.4Е+38 |
long double | 10 (80) | 3.4Е-4932 .. 3.4Е+4932 |
Реализация типа double в AVR-GCC отступает от стандарта. По стандарту double занимает 64 бита. В AVR-GCC переменная этого типа занимает 32 бита, и соответственно, она эквивалентна переменной с типом float!
В дополнение к этому, в библиотеках AVR-GCC введено несколько производных от стандартных типов. Они описаны в файле stdint.h. Сделано это, наверно, для улучшения наглядности и уменьшения текста программ (ускорения их написания :)). Вот табличка соответствия:
Производный тип | Стандартный тип |
---|---|
int8_t | signed char |
uint8_t | unsigned char |
int16_t | signed int |
uint16_t | unsigned int |
int32_t | signed long int |
uint32_t | unsigned long int |
int64_t | signed long long int |
uint64_t | unsigned long long int |
В языке Си есть еще один тип — тип void. Void используется для указания, что функция не возвращает ничего в качестве результата, или не принимает на вход никаких параметров. Этот тип не применяется для объявления переменных, соответственно он не занимает места в памяти.
digitalchip.ru
На протяжении многих лет в нескольких организациях и различных проектах, связанных с C/С++, я видел, что потребность в целых числах фиксированной ширины была решена путем определения локальной версии types.h
, которая будет выглядеть примерно так: —
typedef signed char int8;
typedef unsigned char uint8;
typedef signed short int16;
typedef unsigned short uint16;
typedef signed long int32;
typedef unsigned long uint32
typedef signed long long int64;
typedef unsigned long long uint64;
Почему они не интегрируются в стандарты C/С++?
Я знаю, что C99
стандартизовал подобные uint32_t
. Аналогично, Microsoft определила его собственный UINT32
и т.д. — Но для этого все еще требуется typedef
, поскольку
использование uingX lingo широко распространено среди наследия, а также нового кода, написанного опытными разработчиками.
Я также знаю Boost Integer Library — Опять же, что не стандартный С++, как они ясно указывают: —
Поскольку они являются заголовками заголовков, их имена соответствуют заголовку boost соглашения об именах, а не именование имен библиотеки стандартной библиотеки С++ конвенции.
Мысли о плюсах против интеграции [u]intX
в официальные стандарты?
ИЗМЕНИТЬ:
Вопрос уже дал качественные ответы и мнения. Спасибо, они информативны и полезны!! Некоторые комментарии предполагают, что вопрос недостаточно ясен: —
«вы спрашиваете конкретно о добавлении дополнительных псевдонимов для уже существующих typedefs в стандарте» — да точно
@Pascal Cuoq ans решает настоящую проблему, если они будут добавлены к стандартам: —
Не ждите, пока имя
UINT32
станет официальным именем целочисленный тип в С++; это, вероятно, никогда не произойдет, именно потому, что поэтому многие программы уже набирают тип этого имени.
qaru.site
Ниже приведены типы данных Visual Basic, их вспомогательные типами среды CLR, номинально занимаемая память и их диапазоны значений.The following table shows the Visual Basic data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.
Тип Visual BasicVisual Basic type | Общая структура типа среды выполнения языкаCommon language runtime type structure | Номинальной памятиNominal storage allocation | Диапазон значенийValue range |
---|---|---|---|
BooleanBoolean | Boolean | Зависит от реализации платформыDepends on implementing platform | True или False True or False |
ByteByte | Byte | 1 байт1 byte | от 0 до 255 (неподписанный)0 through 255 (unsigned) |
Char (один знак)Char (single character) | Char | 2 байта2 bytes | от 0 до 65535 (без знака)0 through 65535 (unsigned) |
DateDate | DateTime | 8 байт8 bytes | 0:00:00 (полночь) 1 января 0001 года до 23:59:59: 00 31 декабря 9999 года0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999 |
DecimalDecimal | Decimal | 16 байт16 bytes | от 0 до +/-79,228,162,514,264,337,593,543,950,335 (+/-7,9 … E + 28) † нет десятичной запятой; от 0 до +/-7,9228162514264337593543950335 с 28 разрядами справа от десятичного разделителя;0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9…E+28) † with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; наименьшее ненулевое значение равно +/-0,0000000000000000000000000001 (+/-1E-28) †smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28) † |
Двойные (двойной точности с плавающей запятой)Double (double-precision floating-point) | Double | 8 байт8 bytes | -1, 79769313486231570E + 308 до — 4.94065645841246544E-324 † для отрицательных значений;-1.79769313486231570E+308 through -4.94065645841246544E-324 † for negative values; 4.94065645841246544E-324 до 1, 79769313486231570E + 308 † для положительных значений4.94065645841246544E-324 through 1.79769313486231570E+308 † for positive values |
IntegerInteger | Int32 | 4 байта4 bytes | от -2147483648 до 2 147 483 647 (со знаком)-2,147,483,648 through 2,147,483,647 (signed) |
Long (длинное целое)Long (long integer) | Int64 | 8 байт8 bytes | -9223372036854775808 до 9223372036854775807 (9.2 … E + 18 †) (со знаком)-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2…E+18 †) (signed) |
ОбъектObject | Object (класс)Object (class) | 4 байта в 32-разрядной платформе4 bytes on 32-bit platform 8 байт на 64-разрядной платформе8 bytes on 64-bit platform | Любой тип, которые могут храниться в переменной типа Object Any type can be stored in a variable of type Object |
SByteSByte | SByte | 1 байт1 byte | -128 до 127 (со знаком)-128 through 127 (signed) |
Короткий (короткое целое число)Short (short integer) | Int16 | 2 байта2 bytes | -32 768 до 32 767 (со знаком)-32,768 through 32,767 (signed) |
Единый (одиночной точности с плавающей запятой)Single (single-precision floating-point) | Single | 4 байта4 bytes | -3, 4028235E + 38 до — 1, 401298E-45 † для отрицательных значений;-3.4028235E+38 through -1.401298E-45 † for negative values; 1, 401298E-45 до 3, 4028235E + 38 † для положительных значений1.401298E-45 through 3.4028235E+38 † for positive values |
Строка (переменной длины)String (variable-length) | String (класс)String (class) | Зависит от реализации платформыDepends on implementing platform | 0 до приблизительно 2 миллиардов знаков Юникода0 to approximately 2 billion Unicode characters |
UIntegerUInteger | UInt32 | 4 байта4 bytes | от 0 до 4 294 967 295 (неподписанный)0 through 4,294,967,295 (unsigned) |
ULongULong | UInt64 | 8 байт8 bytes | от 0 до 18446744073709551615 (1,8 … E + 19 †) (без знака)0 through 18,446,744,073,709,551,615 (1.8…E+19 †) (unsigned) |
Определяемые пользователем (структуры)User-Defined (structure) | (наследуется от ValueType)(inherits from ValueType) | Зависит от реализации платформыDepends on implementing platform | Каждый элемент структуры имеет диапазон, определяемый по его типу данных и не зависят от диапазонов других элементовEach member of the structure has a range determined by its data type and independent of the ranges of the other members |
UShortUShort | UInt16 | 2 байта2 bytes | от 0 до 65 535 (неподписанный)0 through 65,535 (unsigned) |
† В экспоненциальное представление чисел, «E» ссылается на степень числа 10.† In scientific notation, «E» refers to a power of 10. Поэтому 3.56E + 2 означает 3.56 x 102 или 356 и 3.56E-2 означает, что 3.56 / 102 или 0.0356.So 3.56E+2 signifies 3.56 x 102 or 356, and 3.56E-2 signifies 3.56 / 102 or 0.0356.
Примечание
Для строк, содержащих текст, используйте StrConv функция для преобразования из одного текстового формата в другой.For strings containing text, use the StrConv function to convert from one text format to another.
В дополнение к определению типов данных в операторе объявления, можно задать тип данных некоторых элементов программирования с помощью символа типа.In addition to specifying a data type in a declaration statement, you can force the data type of some programming elements by using a type character. См. в разделе символов.See Type Characters.
При объявлении простой тип данных, не уверенностью предположить, что объем используемой памяти совпадает со значением номинальной памяти.When you declare an elementary data type, it is not safe to assume that its memory consumption is the same as its nominal storage allocation. Это происходит из-за следующее:This is due to the following considerations:
Назначение хранилища.Storage Assignment. Среда CLR может назначать хранилище, с учетом характеристик текущей платформы, на котором выполняется приложение.The common language runtime can assign storage based on the current characteristics of the platform on which your application is executing. Если памяти почти заполнен, она может упаковать объявленные элементы близко друг к другу.If memory is nearly full, it might pack your declared elements as closely together as possible. В других случаях он может выровнять их адреса памяти для естественным аппаратным границам памяти для оптимизации производительности.In other cases it might align their memory addresses to natural hardware boundaries to optimize performance.
Ширина платформы.Platform Width. Выделение памяти на 64-разрядной платформе отличается от назначения на 32-разрядной платформе.Storage assignment on a 64-bit platform is different from assignment on a 32-bit platform.
Эти же рекомендации будут применимы к каждому члену типа составных данных, например структуру или массив.The same considerations apply to each member of a composite data type, such as a structure or an array. Нельзя полагаться на просто добавляя Номинальное дисковое распределения членов типа.You cannot rely on simply adding together the nominal storage allocations of the type’s members. Кроме того существуют и другие вопросы, например следующие:Furthermore, there are other considerations, such as the following:
Дополнительные издержки.Overhead. Некоторые составные типы имеют дополнительные требования к памяти.Some composite types have additional memory requirements. Например массив использует дополнительную память для самого массива, а также для каждого измерения.For example, an array uses extra memory for the array itself and also for each dimension. В настоящее время на 32-разрядной платформе, эти накладные расходы — 12 байт, а также 8 байт для каждого измерения.On a 32-bit platform, this overhead is currently 12 bytes plus 8 bytes for each dimension. На 64-разрядной платформе удваивается это требование.On a 64-bit platform this requirement is doubled.
Расположение в памяти.Storage Layout. Нельзя рассчитывать на безопасно порядок элементов в памяти: так же, как порядок их объявления.You cannot safely assume that the order of storage in memory is the same as your order of declaration. Даже не может делать предположения о байтового выравнивания, например двухбайтовых и четырехбайтовых границ.You cannot even make assumptions about byte alignment, such as a 2-byte or 4-byte boundary. Если при определении класса или структуры и вам необходимо управлять его члены структуры хранилища, можно применить StructLayoutAttribute атрибут класса или структуры.If you are defining a class or structure and you need to control the storage layout of its members, you can apply the StructLayoutAttribute attribute to the class or structure.
Object
Ссылок на данные в любой простой или составной тип занимающего 4 байта в дополнение к данным, содержащимся в тип данных.An Object
referring to any elementary or composite data type uses 4 bytes in addition to the data contained in the data type.
docs.microsoft.com