Long тип: Типы char, short, int и long — Целые типы — Типы данных — Основы языка

Содержание

Размер типов данных в C++ / Ravesli

  Обновл. 11 Сен 2021  | 

Как мы уже знаем из урока №28, память на современных компьютерах, как правило, организована в блоки, которые состоят из байтов, причем каждый блок имеет свой уникальный адрес. До этого момента, память можно было сравнивать с почтовыми ящиками (с теми, которые находятся в каждом подъезде), куда мы можем поместить информацию и откуда мы её можем извлечь, а имена переменных — это всего лишь номера этих почтовых ящиков.

Тем не менее, эта аналогия не совсем подходит к программированию, так как переменные могут занимать больше 1 байта памяти. Следовательно, одна переменная может использовать 2, 4 или даже 8 последовательных адресов. Объем памяти, который использует переменная, зависит от типа данных этой переменной. Так как мы, как правило, получаем доступ к памяти через имена переменных, а не через адреса памяти, то компилятор может скрывать от нас все детали работы с переменными разных размеров.

Есть несколько причин по которым полезно знать, сколько памяти занимает определенная переменная/тип данных.

Во-первых, чем больше она занимает, тем больше информации сможет хранить. Так как каждый бит содержит либо 0, либо 1, то 1 бит может иметь 2 возможных значения.

2 бита могут иметь 4 возможных значения:

бит 0бит 1
00
01
10
11

3 бита могут иметь 8 возможных значений:

бит 0бит 1бит 2
000
001
010
011
100
101
110
111

По сути, переменная с n-ным количеством бит может иметь 2n возможных значений. Поскольку байт состоит из 8 бит, то он может иметь 28 (256) возможных значений.

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

Во-вторых, компьютеры имеют ограниченное количество свободной памяти. Каждый раз, когда мы объявляем переменную, небольшая часть этой свободной памяти выделяется до тех пор, пока переменная существует. Поскольку современные компьютеры имеют много памяти, то в большинстве случаев это не является проблемой, особенно когда в программе всего лишь несколько переменных. Тем не менее, для программ с большим количеством переменных (например, 100 000), разница между использованием 1-байтовых или 8-байтовых переменных может быть значительной.

Размер основных типов данных в C++

Возникает вопрос: «Сколько памяти занимают переменные разных типов данных?». Вы можете удивиться, но размер переменной с любым типом данных зависит от компилятора и/или архитектуры компьютера!

Язык C++ гарантирует только их минимальный размер:

ТипМинимальный размер
Логический тип данныхbool1 байт
Символьный тип данныхchar1 байт
wchar_t1 байт
char16_t2 байта
char32_t4 байта
Целочисленный тип данныхshort2 байта
int2 байта
long4 байта
long long8 байт
Тип данных с плавающей запятойfloat4 байта
double8 байт
long double8 байт

Фактический размер переменных может отличаться на разных компьютерах, поэтому для его определения используют оператор sizeof.

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

#include <iostream>

int main()
{
std::cout << «bool:\t\t» << sizeof(bool) << » bytes» << std::endl;
std::cout << «char:\t\t» << sizeof(char) << » bytes» << std::endl;
std::cout << «wchar_t:\t» << sizeof(wchar_t) << » bytes» << std::endl;
std::cout << «char16_t:\t» << sizeof(char16_t) << » bytes» << std::endl;
std::cout << «char32_t:\t» << sizeof(char32_t) << » bytes» << std::endl;
std::cout << «short:\t\t» << sizeof(short) << » bytes» << std::endl;
std::cout << «int:\t\t» << sizeof(int) << » bytes» << std::endl;
std::cout << «long:\t\t» << sizeof(long) << » bytes» << std::endl;
std::cout << «long long:\t» << sizeof(long long) << » bytes» << std::endl;
std::cout << «float:\t\t» << sizeof(float) << » bytes» << std::endl;
std::cout << «double:\t\t» << sizeof(double) << » bytes» << std::endl;
std::cout << «long double:\t» << sizeof(long double) << » bytes» << std::endl;
return 0;
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include <iostream>

int main()

{

    std::cout << «bool:\t\t» << sizeof(bool) << » bytes» << std::endl;

    std::cout << «char:\t\t» << sizeof(char) << » bytes» << std::endl;

    std::cout << «wchar_t:\t» << sizeof(wchar_t) << » bytes» << std::endl;

    std::cout << «char16_t:\t» << sizeof(char16_t) << » bytes» << std::endl;  

    std::cout << «char32_t:\t» << sizeof(char32_t) << » bytes» << std::endl;    

    std::cout << «short:\t\t» << sizeof(short) << » bytes» << std::endl;

    std::cout << «int:\t\t» << sizeof(int) << » bytes» << std::endl;

    std::cout << «long:\t\t» << sizeof(long) << » bytes» << std::endl;

    std::cout << «long long:\t» << sizeof(long long) << » bytes» << std::endl;

    std::cout << «float:\t\t» << sizeof(float) << » bytes» << std::endl;

    std::cout << «double:\t\t» << sizeof(double) << » bytes» << std::endl;

    std::cout << «long double:\t» << sizeof(long double) << » bytes» << std::endl;

    return 0;

}

Вот результат, полученный на моем компьютере:

bool:           1 bytes
char:           1 bytes
wchar_t:        2 bytes
char16_t:       2 bytes
char32_t:       4 bytes
short:          2 bytes
int:            4 bytes
long:           4 bytes
long long:      8 bytes
float:          4 bytes
double:         8 bytes
long double:    8 bytes

Ваши результаты могут отличаться, если у вас другая архитектура, или другой компилятор. Обратите внимание, оператор sizeof не используется с типом void, так как последний не имеет размера.

Если вам интересно, что значит \t в коде, приведенном выше, то это специальный символ, который используется вместо клавиши TAB. Мы его использовали для выравнивания столбцов.

Интересно то, что sizeof — это один из трех операторов в языке C++, который является словом, а не символом (еще есть new и delete).

Вы также можете использовать оператор sizeof и с переменными:

#include <iostream>

int main()
{
int x;
std::cout << «x is » << sizeof(x) << » bytes» << std::endl;
}

#include <iostream>

 

int main()

{

int x;

std::cout << «x is » << sizeof(x) << » bytes» << std::endl;

}

Результат выполнения программы:

x is 4 bytes

Оценить статью:

Загрузка…

Поделиться в социальных сетях:

c — Зачем нужен тип long когда есть int?

Процессоры развивались постепенно все более расширяя емкость регистров. Например, ранее в DOS тип int соответствовал 16 разрядному целочисленному значению, так как на IBM-совместимых компьютеров регистры были 16-разрядными. Например, регистр AX является 16 разрядным, а его подрегистры AL и AH имели разрядность равную 8 битам. До этого вообще регистры процессоров были 8 разрядными.

Если выполнить, допустим, умножение двух объектов 16-разрядного типа int, то для хранения результата нужно использовать два регистра как, например, регистры AX и DX. Для этого результата уже нужно вводить новый целочисленный тип. И такой тип был введен. Это тип long .

Затем появились 64-разрядные процессоры. Необходимо различать 16-разрядные целые числа, 32-разрядные целые числа и 64- разрядные целые числа. Поэтому был введен дополнительный целый тип Long long. Имейте в виду, что нужно было сохранять обратную совместимость с целыми типами, введенными ранее для процессоров с меньшей разрядностью.

Поэтому в стандарте C принято, что

sizeof( short ) <= sizeof( int )
sizeof( int ) <= sizeof( long )
sizeof( long ) <= sizeof( long long )

У разработчиков компиляторов есть свобода выбора, какая разрядность будет у типа long и других целочисленных типов. Например, разрядность типа long может составлять не `32 бита, а 64 бита.

Чтобы программы были переносимы, возникла необходимость вводить новые типы со строго указанной разрядностью такие, как, например, int_least32_t или int32_t.

На одних 64-битовых платформах тип long и тип long long могут иметь 64-битовуж разрядность. На других 64-битовых платформах тип long может быть 32-битовым и тип int также может быть 32-битовым, а тип long long — 64 битовым.

Тем не менее ранг типа long long больше ранга типа long, а тип long в свою очередь имеет ранг выше, чем тип int.

На этом основываются правила преобразования типов в выражениях. Например, если тип long и тип int имеют разрядность равную 32 битам, то в следующем фрагменте кода

long x = 0;
unsigned int y = 0;

x + y;

тип выражения x + y имеет тип unsigned long.

В связи с этим имеются некоторые курьезы, связанные с такими преобразованиями особенно при выборе перегруженной функции в C++.

Один из таких примеров описан в следующей теме, где ближе к ее концу (можно быстро найти это сообщение по ключевому слову int64_t) описывается один из таких курьезов, связанных с вызовом перегруженной функции, у которой параметр имеет тип std::int64_t, который, как оказалось, является не алиасом типа long long int, а алиасом типа long int, который на данной платформе является 64-битовым.

В чем разница между «long», «long long», «long int» и «long long int» в C ++?

longи long intидентичны. Так long longи есть long long int. В обоих случаях intопционально.

Что касается различия между двумя наборами, стандарт C ++ предписывает минимальные диапазоны для каждого, и это long long, по крайней мере, так же широко, как long.

Контролирующие части стандарта (C ++ 11, но это было давно), например 3.9.1 Fundamental types, раздел 2 (в следующем разделе приведены аналогичные правила для целых типов без знака):

Существует пять стандартных целочисленных типов со знаком: char со знаком, short int, int, long int и long long int. В этом списке каждый тип обеспечивает как минимум столько же памяти, сколько предшествует ему в списке.

Также есть таблица 9 7.1.6.2 Simple type specifiers, которая показывает «сопоставления» спецификаторов с реальными типами (показывая, что intэто необязательно), раздел которых показан ниже:

Specifier(s)         Type
-------------    -------------
long long int    long long int
long long        long long int
long int         long int
long             long int

Обратите внимание на различие между спецификатором и типом. Спецификатор — это то, как вы сообщаете компилятору, что это за тип, но вы можете использовать разные спецификаторы, чтобы получить один и тот же тип.

Следовательно, сам longпо себе не является ни типом, ни модификатором, как предполагает ваш вопрос, это просто спецификатор для long intтипа. То же long longсамое для спецификатора long long intтипа.

Хотя сам стандарт C ++ не определяет минимальные диапазоны целочисленных типов, он ссылается на C99 в 1.2 Normative referencesкачестве применяемого. Следовательно, минимальные диапазоны, изложенные в C99 5.2.4.2.1 Sizes of integer types <limits.h>, применимы.


С точки зрения long double, это на самом деле значение с плавающей запятой, а не целое число. Как и в случае целочисленных типов, требуется иметь как минимум такую ​​же точность, как и, doubleи предоставлять надмножество значений для этого типа (то есть, по крайней мере, те значения, а не обязательно больше значений).

Horizontal Rail, Front, Type H-LD, Heavy, Long Lip, for IEEE Application, 40 HP 34560-340

Поставщики в вашем регионе

Ниже приведен список местных поставщиков, которые в настоящее время имеют этот товар на складе:

ДистрибьюторКоличествоДата наличия на складе
Информация отсутствует.

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ОБ ИЗДЕЛИИ

Горизонтальный рельс с длинной кромкой позволяет использовать ручки для вставки/извлечения согласно IEEE.

Поставка исключительно в размере товарной партии. Цена указана за отдельную единицу.

Обратите внимание, что поставки доступны в указанных стандартных товарных партиях (товарная партия, например, 5 шт., 10 шт., 50 шт. и т. д.). Другие объемы заказов (например, 2 шт.) могут округляться вверх до следующего возможного размера стандартной товарной партии.

Комплектность поставки

В комплект поставки этого изделия входят следующие позиции:

ИзделиеОписаниеКоличество
1 Горизонтальный рельс, тип H-LD, алюминиевый профиль, анодирование, поверхности контакта электропроводящие, с маркировкой HP 1

Единобразие типов | Scala Documentation

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

Иерархия типов Scala

Any это супертип всех типов, также называемый верхним типом. Он определяет несколько универсальных методов, таких как equals, hashCode и toString. У Any есть два прямых подкласса: AnyVal и AnyRef.

AnyVal представляет числовые типы. Существует девять предварительно определенных числовых типов и они никогда не могут быть равны ‘null’: Double, Float, Long, Int, Short, Byte, Char, Unit, и Boolean. Unit — это числовой тип, который не содержит значимой информации (также обозначает пустое множество). Есть только один представитель типа Unit, который можно объявить вот так: (). Все функции должны возвращать что-то, поэтому иногда Unit полезный для возврата тип.

AnyRef представляет ссылочные типы. Все типы, не относящиеся к “числовым типам”, называются ссылочными типами. Каждый объявляемый пользователем тип в Scala является подтипом AnyRef. Если в Scala исходить из контекста среды исполнения Java, AnyRef соответствует java.lang.Object.

Вот пример, демонстрирующий, что строки, целые числа, символы, логические значения и функции являются объектами, как и любой другой объект:

val list: List[Any] = List(
  "a string",
  732,  // целое число
  'c',  // символ
  true, // логическое значение
  () => "анонимная функция возвращающая строку"
)

list.foreach(element => println(element))

Объявляем переменную list типа List[Any]. Список инициализируется элементами различных типов, но все они являются экземпляром scala.Any, так что вы можете добавить их в список.

Ниже приведен вывод программы:

a string
732
c
true
<function>

Приведение типа

Числовые типы могут быть приведены следующим образом:

Например:

val x: Long = 987654321
val y: Float = x  // 9.8765434E8 (заметьте, что некоторая точность теряется в этом случае.)

val face: Char = '☺'
val number: Int = face  // 9786

Приведение типа — однонаправленно. Следующий пример не скомпилируется:

val x: Long = 987654321
val y: Float = x  // 9.8765434E8
val z: Long = y  // обратно не подходит

Вы также можете приводить к своему подтипу. Об этом мы поговорим позже в ходе нашего обзора.

Nothing и Null

Nothing является подтипом всех типов, также называемым нижним типом. Нет значения, которое имеет тип Nothing. Обычно он используется чтоб дать сигнал о не вычислимости, например брошено исключение, выход из программы, бесконечное зацикливание (т.е. это тип выражения, которое не вычисляется).

Null подтип всех ссылочных типов (т.е. любой подтип AnyRef). Он имеет одно значение, определяемое ключевым словом литерала null. Null предоставляется в основном для функциональной совместимости с другими языками JVM и почти никогда не должен использоваться в коде Scala.31. Если у вас 64-битная система, то тип long тоже будет 8-байтовым. А в 32-разрядной системе приходится довольствоваться только им. Этот тип данных получил права только в последних версиях С++, например, в С++ 6.0 вы его найдёте, но работать с ним там одно удовольствие.

Несмотря на то, что у long long есть закреплённые права и обязанности. Использовать его всё равно следует по-особенному. Для начала следует учесть, что простое присваивание ему значений не прокатит. Если вы хотите присвоить значение переменной типа long long, то не забудьте приставить к числу две буквы LL (которые видимо символизируют, что число «longlong» 64-битное).

long long temp = 1100LL;

Далее: про соответствие типов. Думаю, когда человек первый раз «берёт в руки» этот тип данных ему становится интересно, а как он соотносится с типом int?

Отношения у long long c int очень интересные. Если вы хотите складывать два числа int, зная, что результат выйдет за диапазон int, то вы можете использовать long long. Сложите два int присвоите long long и все будут счастливы.

int a1 = 2000000000;

int a2 = 2000000000;

long long b = a1 + a2;

b равен 400000000. И здесь проблем возникнуть не должно.

С умножением int’ов дела гораздо интереснее. Если вы просто возьмёте две переменные типа int и перемножите их между собой, зная, что результат выйдет за пределы int, то ничего у вас не получится. Переменная типа long long будет просто равна нулю. В итоге, чтобы умножать в Visual C++ числа типа int и получить long long следует проделать сложения через цикл, т.е. если мы хотим умножить число а на число b, то всё будет выглядеть так.

long long temp = 0;

for (int i = 0; i < a; i++) {

temp += b;

}

И только тогда захочет быть произведением.

c — Тип long Vs Тип long int

Что будет означать следующий typedef и зачем он нужен

typedef unsigned long int ULONG;

Насколько это отличается от

typedef unsigned long ULONG;

Для gcc sizeof int = 4, sizeof long = 8 и sizeof ULONG = 8.

4

Kamath

6 Июн 2012 в 11:52

4 ответа

Лучший ответ

Они одинаковые. Поскольку long по умолчанию является модификатором для int, int можно опустить. То же самое касается short и short int, unsigned и unsigned int и т. Д.

Здесь важно понимать, что long, short и unsigned являются модификаторами типа , а не сами типы, в отличие от int, char, double и т. Д.

10

Blagovest Buyukliev
6 Июн 2012 в 08:04

На самом деле unsigned long не определен в стандарте C ++ ISO / IEC 14882, поэтому, если он работает для вас, то только потому, что ваш компилятор интерпретирует unsigned long int как unsigned long.

3

Jonathan Leffler
30 Окт 2012 в 17:48

Нет никакой разницы. long является синонимом long int (так же, как short является синонимом short int).

3

Jerry Coffin
6 Июн 2012 в 07:54

Размер long не связан с gcc, а с os

-1

waitingkuo
6 Июн 2012 в 07:56

Длинный тип данных — Visual Basic

  • 2 минуты на чтение

В этой статье

Содержит 64-битные (8-байтовые) целые числа со знаком в диапазоне значений от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 (9,2 … E + 18).

Замечания

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

Значение по умолчанию Long — 0.

Буквальные присвоения

Вы можете объявить и инициализировать переменную Long , назначив ей десятичный литерал, шестнадцатеричный литерал, восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал. Если целочисленный литерал находится за пределами диапазона Long (то есть, если он меньше Int64.MinValue или больше Int64.MaxValue, возникает ошибка компиляции.

В следующем примере целые числа, равные 4 294 967 296, которые представлены как десятичные, шестнадцатеричные и двоичные литералы, присваиваются значениям Long .

  Dim longValue1 As Long = 4294967296
Console.WriteLine (longValue1)

Dim longValue2 As Long = & h200000000
Console.WriteLine (longValue2)

Dim longValue3 As Long = & B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine (longValue3)
'В примере отображается следующий вывод:
'4294967296
'4294967296
'4294967296
  

Примечание

Вы используете префикс & h или & H для обозначения шестнадцатеричного литерала, префикс & b или & B для обозначения двоичного литерала и префикс & o или & O для обозначения восьмеричного литерала.Десятичные литералы не имеют префикса.

Начиная с Visual Basic 2017, вы также можете использовать символ подчеркивания _ в качестве разделителя цифр для повышения удобочитаемости, как показано в следующем примере.

  Dim longValue1 As Long = 4_294_967_296
Console.WriteLine (longValue1)

Dim longValue2 As Long = & h2_0000_0000
Console.WriteLine (longValue2)

Dim longValue3 As Long = & B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine (longValue3)
'В примере отображается следующий вывод:
'4294967296
'4294967296
'4294967296
  

Начиная с Visual Basic 15.5, вы также можете использовать символ подчеркивания ( _ ) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмеричными цифрами. Например:

  Размерное число As Long = & H_0FAC_0326_1489_D68C
  

Чтобы использовать символ подчеркивания в качестве ведущего разделителя, необходимо добавить в файл проекта Visual Basic (* .vbproj) следующий элемент:

  
   15.5 

  

Дополнительные сведения см. В разделе Выбор языковой версии Visual Basic.

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

  Размерное число = & H_0FAC_0326_1489_D68CL
  

Советы по программированию

  • Рекомендации по взаимодействию. Если вы взаимодействуете с компонентами, написанными не для .NET Framework, например с объектами автоматизации или COM, помните, что Long имеет другую ширину данных (32 бита) в других средах.Если вы передаете 32-битный аргумент такому компоненту, объявите его как Integer вместо Long в новом коде Visual Basic.

  • Расширение. Тип данных Long расширяется до Decimal , Single или Double . Это означает, что вы можете преобразовать Long в любой из этих типов без возникновения ошибки System.OverflowException.

  • Тип символов. Добавление символа типа литерала L к литералу принудительно приводит его к типу данных Long . Добавление символа типа идентификатора и к любому идентификатору приводит к установке Long .

  • Тип каркаса. Соответствующим типом в .NET Framework является структура System.Int64.

См. Также

5 примеров типов данных Java int, Integer и long

Типы данных int и long в Java

Java предоставляет ряд числовых типов данных, в том числе int и long.Int и long — примитивные типы данных; int занимает 32 бита или четыре байта памяти, а long занимает 64 бита или 8 байтов.

int пример длинный пример

Итак, если ваша программа должна хранить небольшие числа, используйте тип int. Если число больше + — 2 миллиарда (около) , тогда используйте переменную длинного типа Java.

Как типы int, так и long имеют классы-оболочки в Java. int имеет целое число , а long имеет класс оболочки Long .

Пример целочисленного класса

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

Пример использования типа Java int

Вот как вы можете объявлять и использовать переменные типа int в программах Java. См. Этот пример, в котором я объявил и присвоил значения переменным типа int двумя способами:

Посмотреть онлайн-демонстрацию и код

Пример кода Java для int:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

открытый класс java_variables {

public static void main (String [] args) {

// Объявление переменных типа int

int num_a, sum_c;

int num_b = 500000;

число_а = 150000;

// Получение суммы двух чисел

sum_c = num_a + num_b;

Система.out.println («Сумма двух переменных типа int равна =» + sum_c);

}

}

Результат:

Как видите, первая строка используется только для объявления двух переменных типа int Java. Значение присваивается num_a после его объявления. Во второй строке объявляется num_b , и значение присваивается во время объявления.

Пример использования переменной int в цикле for

См. Этот пример, в котором переменная типа int используется в цикле for. Переменная объявляется внутри цикла и используется с массивом для отображения элементов массива.

Посмотреть онлайн-демонстрацию и код

Код:

открытый класс java_variables {

public static void main (String [] args) {

int [] Intarr = {5,10,15,20,25,30,35};

// Объявление переменной типа int внутри цикла for

for (int ArrItem: Intarr) {

System.out.println («Значение числового массива:» + ArrItem);

}

}

}

Выход:

Использование примера длинного типа данных Java

Как и переменные типа int, объявляется тип long. Вы можете присвоить значение во время объявления или после этого. Как упоминалось ранее, тип long занимает 64 бита памяти, поэтому может хранить гораздо большее значение, чем тип int, который занимает 32 бита.

Взгляните на следующий пример, где переменные типа long объявляются, им присваиваются значения и используются в вычислениях. Для демонстрации значения длинных переменных сохраняются немного выше, чем предел типа int:

Посмотреть онлайн-демонстрацию и код

Код Java:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

открытый класс java_variables {

public static void main (String [] args) {

// Объявление переменных длинного типа

long num_a, sum_c;

длинный num_b = 2147483649L;

num_a = 2147483649L;

// Получение суммы двух длинных чисел

sum_c = num_a + num_b;

Система.out.println («Сумма двух длинных переменных =» + sum_c);

}

}

Вывод приведенного выше кода:

Значения переменной типа long используются с буквой L в конце.

Несколько основных моментов о примитивных типах int и long

Прежде чем переходить к примерам использования классов Java Integer и Long, давайте взглянем на несколько важных моментов, касающихся типов данных int и long, а также классов Integer / Long:

Целое и целое число

  • int — это числовые примитивные типы данных в Java.
  • int занимает 32-битную память.
  • Максимальное значение, которое может хранить переменная типа int, равно 2 147 483 647.
  • Минимальное значение переменной int может быть — 2 147 483 648.
  • Значение int по умолчанию — 0.
  • У int есть класс-оболочка Integer в Java.
  • Тип int не может хранить нулевое значение, в то время как целое число может.
  • Преимущество целочисленного класса может заключаться в использовании в коллекциях с универсальными шаблонами или ссылками на объекты, которые нельзя использовать с примитивным типом.
  • Как и другие классы, вы должны создавать объекты целочисленного класса, которые содержат одно поле, то есть int.

Длинный (примитивный тип) и Длинный класс:

  • Long — это числовой тип данных в Java.
  • Это тоже примитивный тип.
  • Длинный тип занимает 64 бита памяти.
  • Максимальное значение, которое может хранить переменная типа long, составляет 9,223,372,036,854,775,807L .
  • Минимальное значение: -9,223,372,036,854,775,808L .
  • Класс-оболочка для long — Long.

Пример использования целочисленного класса

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

Посмотреть онлайн-демонстрацию и код

Код с целочисленным классом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

открытый класс java_variables {

public static void main (String [] args) {

// Объявление переменных целочисленного типа

Integer num_a, sum_c;

Целое число num_b = 214748364;

num_a = 214748364;

// Получение суммы двух целых чисел

sum_c = num_a + num_b;

Система.out.println («Сумма двух целочисленных переменных равна =» + sum_c);

}

}

Пример использования целого числа в коллекции ArrayList

Как упоминалось ранее, класс Integer можно использовать с универсальными шаблонами. Например, если вы хотите создать ArrayList из чисел int, вы не можете сделать это, используя примитивный тип int. Таким образом, универсальные типы должны быть объектами типа, поэтому вы можете использовать здесь Integer.

В следующем примере ArrayList создается с пятью числовыми элементами. ArrayList объявлен с типом Integer, поэтому элементы могут быть только числами. Вот как используется целое число:

Посмотреть онлайн-демонстрацию и код

ArrayList с целыми числами:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

импорт java.util. *;

открытый класс java_variables {

public static void main (String [] args) {

ArrayList IntegerArrLst = new ArrayList (); // Объявление ArrayList с целым числом

IntegerArrLst.add (5);

IntegerArrLst.add (10);

IntegerArrLst.добавить (15);

IntegerArrLst.add (20);

IntegerArrLst.add (25);

// Отображение списка массивов

для (int IntgerArrItem: IntegerArrLst) {

System.out.println («Целочисленный элемент в ArrayList: «+ IntgerArrItem);

}

}

}

Результат:

Если вы попытаетесь использовать примитивный тип int вместо целых чисел в приведенном выше примере, будет сгенерирована ошибка.

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

Длинный класс

Для длинного примитивного типа класс-оболочка в Java — Long . Вы можете применить те же примеры, которые использовались для целочисленного класса в разделе выше; для больших значений.

Примитивные типы данных Java — HowToDoInJava

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

Примитивные типы данных предопределены языком Java и названы зарезервированным ключевым словом. Давайте посмотрим на каждый примитивный тип данных на изображении ниже.

Примитивные типы данных в java

1. Интегральные типы данных Java

Целочисленный тип данных — это числовой тип данных, значения которого относятся к целочисленному типу .

Java предлагает пять интегральных типов данных :

1.1.

внутренний тип

  • Тип данных int — это примитивный тип данных Java с 32-битным знаком .Переменная типа данных int занимает 32 бита памяти .
  • Допустимый диапазон: от -2 147 483 648 до 2 147 483 647 (от -2 31 до 2 31 — 1).
  • Все целые числа в этом диапазоне называются целочисленными литералами (или целочисленными константами). Например, 10, -200, 0, 30, 19 и т. Д. Являются целочисленными литералами int.

Целочисленный литерал может быть назначен переменной int , например, counter , например:

int counter = 21;
 
1.1.1. Целочисленный класс оболочки

Java имеет класс-оболочку с именем Integer , который определяет две константы для представления максимального и минимального значений для типа данных int: Integer.MAX_VALUE и Integer.MIN_VALUE . Это объектное представление значения типа int.

int max = Целое число.MAX_VALUE; // Присваивает максимальное значение int max
int min = целое.MIN_VALUE; // Присваивает минимальное значение int для min
 
1.2.

длинный тип

  • Длинный тип данных — это 64-битный подписанный Java-примитивный тип .
  • Используется, когда результат вычислений целых чисел может выходить за пределы диапазона типа данных int.
  • Диапазон значений от -2 63 до 2 63 — 1.
  • Все целые числа в диапазоне long называются целочисленными литералами типа long .

Целочисленный литерал типа long всегда заканчивается на «L» (или на строчную «l»).

длинное число1 = 0L;
длинное число2 = 401л;
длинный mum3 = -3556L;
 
1.2.1. Тип литье

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

int num1 = 5;
длинное число2 = 25л;
 
// Ошибка времени компиляции. Даже если num2 имеет значение 25, которое находится в диапазоне int.
число1 = число2;
 

Если вы хотите присвоить значение переменной long переменной int , вы должны явно указать этот факт в своем коде , чтобы Java была уверена, что вы знаете, что может произойти переполнение данных.Вы делаете это, используя «cast» в Java, например:

длинное число1 = (целое число) число2; // Теперь все в порядке благодаря приведению "(int)"
 

Записывая (int) num2 , вы инструктируете Java обрабатывать значение, хранящееся в num2 , как int. Во время выполнения Java будет использовать только 32 младших бита num2 и присвоить значение, хранящееся в этих 32 битах, num1 . Если num2 имеет значение, выходящее за пределы диапазона типа данных int, вы не получите такое же значение в num1 , и это приведет к потере данных .

1.2.2. Класс Long Wrapper

Java имеет класс Long (обратите внимание на верхний регистр L в Long), который определяет две константы для представления максимального и минимального значений типа данных long: Long.MAX_VALUE и Long.MIN_VALUE .

long max = Long.MAX_VALUE;
long min = Long.MIN_VALUE;
 
1.3.

байт тип

  • Тип данных байт — это примитивный целочисленный тип данных Java с 8-битным знаком .
  • Его диапазон составляет от -128 до 127 (от -27 до 27 — 1). Это наименьший целочисленный тип данных , доступный в Java.
  • В отличие от int и long литералов, здесь нет байтовых литералов.
  • Однако вы можете присвоить байтовой переменной любой литерал int, попадающий в диапазон байтов.
байт b1 = 125;
байт b2 = -11;
 
1.3.1. Тип литье

Если вы назначаете литерал int переменной byte и значение выходит за пределы диапазона байтового типа данных, Java генерирует ошибку компилятора.Следующий фрагмент кода вызовет ошибку компилятора:

// Ошибка. 150 является внутренним литералом за пределами от -128 до 127
байт b3 = 150;
 

Java не позволяет вам присваивать значение переменной типа данных более высокого диапазона переменной типа данных более низкого диапазона, потому что при выполнении такого присваивания возможна потеря точности . Чтобы сделать такое присваивание от int к байту, вы должны использовать приведение, как вы это делали в случае присваивания long-to-int.

b1 = (байт) num1; // Ok
 
1.3.2. Класс Byte Wrapper

Java имеет класс Byte (обратите внимание на верхний регистр B в Byte), который определяет две константы для представления максимального и минимального значений байтового типа данных: Byte.MAX_VALUE и Byte.MIN_VALUE .

макс. байт = Byte.MAX_VALUE;
байт min = Byte.MIN_VALUE;
 
1,4.

короткий тип

  • Тип данных short — это примитивный целочисленный тип данных Java с 16-битным знаком .Его диапазон составляет от -32768 до 32767 (или от -215 до 215-1).
  • В отличие от целых и длинных литералов, здесь нет коротких литералов.
  • Однако вы можете назначить любой литерал int, который попадает в диапазон short (от -32768 до 32767), переменной short.
  • короткий s1 = 12905; // Ok
    короткий s2 = -11890; // Ok
     

    Значение байтовой переменной всегда можно присвоить переменной типа short, потому что диапазон байтового типа данных попадает в диапазон короткого типа данных.Все остальные правила присвоения значения переменной типа int или long переменной типа short такие же, как и для переменной byte.

    1.4.1. Класс короткой упаковки

    В Java есть класс Short (обратите внимание на верхний регистр S в Short), который определяет две константы для представления максимального и минимального значений типа данных short: Short.MAX_VALUE и Short.MIN_VALUE .

    short max = Short.MAX_VALUE;
    short min = Short.MIN_VALUE;
     
    1.5.

    char тип данных

    • Тип данных char является примитивным типом данных Java 16-бит без знака .
    • Представляет символ Unicode .
    • Обратите внимание, что char — это беззнаковый тип данных. Следовательно, переменная типа char не может иметь отрицательное значение.
    • Диапазон типа данных char составляет от 0 до 65535, что совпадает с диапазоном набора Unicode.
    • Символьный литерал представляет значение типа данных char.
    char c1 = 'А';
    char c2 = 'L';
    char c3 = '5';
    char c4 = '/';
     
    1.5.1. Управляющие последовательности символов

    Символьный литерал также может быть выражен как escape-последовательность из символов . Управляющая последовательность символов начинается с обратной косой черты, за которой сразу следует символ, и оба символа заключаются в одинарные кавычки.

    Существует восемь предопределенных escape-последовательностей , как указано ниже:

    Последовательность выхода персонажа Описание
    ‘\ n’ Перевод строки
    ‘\ r’ Возврат каретки
    ‘\ f’ Подача формы
    ‘\ b’ Возврат
    ‘\ t’ Выступ
    ‘\\’ Обратная косая черта
    ‘\” ‘ Двойная кавычка
    ‘\” Одинарная цитата

    В Java это только восьмисимвольные escape-последовательности.Вы не можете определить escape-последовательности для своих персонажей.

    1.5.2. Управляющая последовательность Unicode

    Символьный литерал также может быть выражен как escape-последовательность Unicode в форме '\ uxxxx' , Здесь \ u (обратная косая черта, сразу за которой следует строчная u) обозначает начало escape-последовательности Unicode, а xxxx представляет собой ровно четыре шестнадцатеричных цифры.

    char c1 = 'А';
    char c2 = '\ u0041'; // То же, что c2 = 'A'
     

    2.Типы данных Java с плавающей запятой

    Число с плавающей запятой, которое содержит дробную часть , называется действительным числом , например 3,25, 0,49, -9,19 и т. Д.

    Как числа хранятся в памяти

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

    1. Формат чисел с фиксированной запятой — Сохраняет только двоичное представление числа и предполагает, что всегда есть фиксированное количество цифр до и после точки.Точка называется десятичной точкой , в десятичном представлении числа и двоичной точкой в ​​двоичном представлении. Тип представления, в котором положение точки всегда фиксируется числом, известен как числовой формат с фиксированной точкой.
    2. Формат числа с плавающей запятой — Сохранение двоичного представления действительного числа и положения точки в действительном числе. Поскольку количество цифр до и после точки может варьироваться в этом виде представления действительного числа, мы говорим, что точка может плавать.Такой вид представления называется форматом с плавающей запятой.

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

    Java поддерживает числовой формат с плавающей запятой.

    IEEE-754 32-битные числа с плавающей запятой одинарной точности

    Java имеет два числовых типа данных с плавающей запятой: float и double .

    2.1.

    поплавок тип

    Тип данных с плавающей запятой использует 32 бита для хранения числа с плавающей запятой в стандартном формате IEEE 754 ( число с плавающей запятой одинарной точности ). Он может представлять собой действительное число от 1,4 x 10 -45 до 3,4 x 10 38 (приблизительно) по величине. В диапазон входит только величина. Это могло быть положительно или отрицательно.

    Все действительные числа, заканчивающиеся на «f» или «F», называются литералами с плавающей запятой .

    поплавок f1 = 8F;
    float f2 = 8.F;
    float f3 = 8.0F;
     
    2.1.1. Положительная и отрицательная бесконечность

    Тип данных float определяет две бесконечности: положительную бесконечность и отрицательную бесконечность. Например, результатом деления 2,5F на 0,0F является положительная бесконечность с плавающей запятой, тогда как результатом деления 2,5F на -0,0F является отрицательная бесконечность с плавающей запятой.

    2.1.2. NaN (не число)

    Результаты некоторых операций с поплавком не определены.Эти результаты представлены специальным значением типа данных с плавающей запятой, называемым NaN (Not-a-Number).

    Float Класс определяет три константы, которые представляют положительную бесконечность, отрицательную бесконечность и NaN типа данных с плавающей запятой. Есть еще две константы, которые представляют максимальное и минимальное (больше нуля) значения с плавающей запятой, которые могут быть сохранены в переменной с плавающей запятой.

    Float.POSITIVE_INFINITY - положительная бесконечность типа float.
    Float.NEGATIVE_INFINITY - отрицательная бесконечность типа float.Float.NaN - Не число типа float.
    Float.MAX_VALUE - наибольшее положительное значение, которое может быть представлено в переменной с плавающей запятой.
    Float.MIN_VALUE - наименьшее положительное значение больше нуля, которое может быть представлено в переменной с плавающей запятой.
     

    Обратите внимание, что значение всех целочисленных типов (int, long, byte, short и char) может быть присвоено переменной типа данных с плавающей запятой без использования явного приведения, НО значение с плавающей запятой должно быть приведено до того, как оно будет присвоено в переменную любого целого типа данных int, long, byte, short или char.

    2.2.

    двойной тип

    Двойной тип данных использует 64 бита для хранения числа с плавающей запятой в «стандартном формате IEEE 754». Число с плавающей запятой, представленное в 64-битном формате в соответствии со стандартом IEEE 754, также известно как число с плавающей запятой двойной точности .

    Все действительные числа называются двойными литералами . Двойной литерал может необязательно оканчиваться на «d» или «D», например, 19.27d. Однако суффикс d или D в двойных литералах необязателен.То есть и 19.27, и 19.27d представляют один и тот же двойной литерал.

    двойной d1 = 8D
    двойной d2 = 8 .;
    двойной d3 = 8,0;
    двойной d4 = 8.D;
     

    Как и тип данных float, тип данных double определяет максимальное, минимальное, две бесконечности и значения NaN.

    Double.POSITIVE_INFINITY - положительная бесконечность типа double.
    Double.NEGATIVE_INFINITY - отрицательная бесконечность типа double.
    Double.NaN - Не число типа double.
    Двойной.MAX_VALUE - наибольшее положительное значение, которое может быть представлено в переменной типа double.
    Double.MIN_VALUE - наименьшее положительное значение больше нуля, которое может быть представлено в переменной типа double.
     

    3. Логический тип данных Java

    3.1.

    логическое тип

    Логический тип данных имеет только два допустимых значения: true и false . Эти два значения называются логическими литералами . Вы можете использовать логические литералы как

    логическое сделано; // Объявляет логическую переменную с именем done
    сделано = правда; // Присваивает истину сделанному
     

    Следует отметить один важный момент: логическая переменная не может быть приведена к любому другому типу данных и наоборот .В Java не указан размер логического типа данных. Его размер оставлен на усмотрение реализации JVM. Обычно значение логического типа данных хранится внутри в байтах.

    Это все для 8 примитивных типов данных, доступных в java .

    Счастливого обучения !!

    VBA Long (пример) | Пошаговое руководство по длинному типу данных в Excel VBA

    Что такое длинный тип данных в VBA?

    Long — это тип данных в VBA , который используется для хранения числовых значений, мы знаем, что целое число также содержит числовые значения, но Long отличается от целых чисел, поскольку диапазон для хранения данных очень велик в случае длинных данных type также в длинном типе данных, мы также можем хранить десятичные значения, это встроенный тип данных.

    «Длинный», , как следует из названия, должен содержать ценность чего-то большого. «Длинный» — это числовой тип данных в VBA Excel.

    Длинный тип данных в Excel VBA может содержать значения от 0 до 2, 147, 483, 647 для положительных чисел, а для отрицательного числа он может содержать значения от 0 до -2, 147, 483, 648.

    VBA Длинный тип данных требует 4 байта памяти вашего компьютера. Это двойная целочисленная память типа данных (2 байта) и половина памяти переменной типа данных double (8 байтов)

    Я никогда не видел сценария, в котором я хотел бы полностью использовать ограничение типа данных VBA Long за свою короткую карьеру.Но я покажу вам несколько примеров, чтобы лучше понять это.

    Вы можете свободно использовать это изображение на своем веб-сайте, в шаблонах и т. Д. Пожалуйста, предоставьте нам ссылку с указанием авторства Ссылка на статью с гиперссылкой
    Например:
    Источник: VBA Long (wallstreetmojo.com)

    Примеры длинного типа данных VBA

    Ниже приведены примеры типа данных Excel VBA Long.

    Длинный пример # 1 для VBA

    Как только вы объявите тип данных переменной как «Long», вы можете присвоить значения от -2, 147, 483, 648 до 2, 147, 483, 648.

    Например, объявите переменную как длинный тип данных.

    Код:

    .

     Sub Long_Example1 ()
    
    Dim k As Long
    
    Концевой переводник 

    Давайте присвоим значение как общее количество строк на листе.

    Чтобы получить общее количество строк в Excel Существует множество способов подсчета строк в Excel с использованием соответствующей формулы, будь то строки данных, пустые строки или строки, содержащие числовые / текстовые значения. В зависимости от обстоятельств вы можете использовать функции СЧЁТ, СЧЁТ, СЧИТАТЬПУСТОТЫ или СЧЁТЕСЛИ.читать больше код рабочего листа «Строки. Граф »

    Код:

    .

     Sub Long_Example1 ()
    
    Dim k As Long
    
    k = Rows.Count
    
    Концевой переводник 

    Теперь покажите значение в окне сообщения.

    Код:

    .

     Sub Long_Example1 ()
    
    Dim k As Long
    
    k = Rows.Count
    MsgBox k
    
    Концевой переводник 

    Запустите этот код и посмотрите, сколько всего строк на листе.

    Он говорит, что у нас более 1 миллиона строк на листе.

    Теперь для лучшего понимания я изменю тип данных с LONG на INTEGER.

    Код:

    .

     Sub Long_Example1 ()
    
    Dim k как целое число
    
    k = Rows.Count
    
    MsgBox k
    
    Концевой переводник 

    Если я запускаю код VBA Код VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. Подробнее, я получу сообщение об ошибке: « Переполнение «.

    Причина, по которой мы получили эту ошибку при обработке ошибок VBAVBA, связана с устранением различных типов ошибок, возникающих при работе с VBA.подробнее, потому что тип данных «Целое число» может содержать только значения от -31768 до 32767. В этом случае «Ряды. Count »вернет число, превышающее предел« целочисленной »переменной.

    Присвоение значения более 1 миллиона переменной, которая может содержать только 32767, вызывает здесь ошибку переполнения.

    Длинный пример # 2 для VBA

    Найти последнюю строку с помощью длинной переменной

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

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

    Теперь я знаю, что номер последней использованной строки — 25000. Для этого нам не нужен тип данных «LONG», поскольку тип данных «INTEGER» может дать мне последнюю строку.

    Посмотрите на приведенный ниже код для вашей информации.

    Код:

    .

     Sub Long_Example1 ()
    Dim k как целое число
    
    k = Ячейки (Строки.Count, 1) .End (xlUp) .Row
    
    MsgBox k
    
    Концевой переводник 

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

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

    Например, я увеличу данные до 32768 строк.

    Теперь, если я снова запущу тот же код, я не получу значение. Скорее, я получу сообщение об ошибке, как показано ниже.

    Помните, я увеличил предел всего на 1 сверх предела значения «Целое число», поэтому я получил ошибку переполнения.

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

    Альтернативы Excel VBA Long Variable

    Вы, должно быть, уже думаете о том, что, если мы хотим удерживать значение больше, чем предел длинной переменной.Для этого нам нужно использовать разные типы данных, то есть либо VBA «String», либо «Variant».

    Помните, что в тот момент, когда он пересекает число 2147483647, мы получим ошибку переполнения в VBAVBA Overflow Error или «Ошибка времени выполнения 6: переполнение» возникает, когда пользователь вставляет значение, превышающее емкость определенного типа данных переменной. Таким образом, это ошибка, возникающая в результате перегрузки данных за пределы желаемого ограничения типа данных переменной. Подробнее о типе данных LONG. Чтобы хранить больше этого числа, нам нужно использовать тип данных «Строка» или «Вариант».

    Для строки

    Код:

    .

     Sub Long_Example2 ()
    
    Dim k As String
    
    к = 2147483648
    
    MsgBox k
    
    Концевой переводник 

    для варианта

    Код:

    .

     Sub Long_Example2 ()
    
    Dim k как вариант
    
    к = 2147483648
    
    MsgBox k
    
    Концевой переводник 

    Когда мы запускаем вышеуказанные коды, он покажет упомянутый номер.

    Рекомендуемые статьи

    Это руководство по типу данных VBA Long в Excel.Здесь мы узнаем, как использовать тип данных VBA Long, вместе с практическими примерами и загружаемым шаблоном Excel. Ниже приведены несколько полезных статей в Excel, связанных с VBA —

    .

    Обучение VBA (3 курса, 12+ проектов)

    тип формат Описание
    номер Любые числа.
    номер поплавок Числа с плавающей запятой.
    номер двойной Числа с плавающей запятой с двойной точностью.
    целое Целые числа.
    целое int32 32-битные целые числа со знаком (обычно используемый целочисленный тип).
    целое инт64 64-битные целые числа со знаком (длинное , тип ).

    Ключевое слово Описание
    эксклюзивно Минимум: ложно или не включено значение ≥ минимум
    эксклюзивный минимум: истинный значение> минимум
    эксклюзивно Максимум: ложно или не включено значение ≤ максимальное
    эксклюзивный Максимум: истинный значение < максимальное

    Sub lngExample ()

    'объявить длинную переменную

    Dim lngA как Long

    ' заполнить длинную переменную

    lngA = 30000

    'показать окно сообщения

    MsgBox lngA

    End Sub

    Sub LngExampleB ()

    'объявить длинную переменную

    Dim lngA как Long

    ' заполнить длинную переменную

    lngA = 3524.12

    'показать окно сообщения

    MsgBox lngA

    End Sub

    Sub LngExampleB ()

    'объявить длинную переменную

    Dim lngA как Long

    ' заполнить длинную переменную

    lngA = 3524.12

    'показать окно сообщения

    MsgBox lngA

    End Sub

    Sub TestLongToString ()

    'объявить строковую переменную

    Dim strDate как строку

    ' объявить long и заполнить значение

    Dim lngDate как long

    lngDate = 44055

    'преобразовать long в формат строки как дату

    strDate = Format (lngDate, "дд мммм гггг")

    'просмотреть результат

    Отладка.Печать strDate

    End Sub

    Sub TestLongtoCurrencyString ()

    'объявить строковую переменную

    Dim strMoney As String

    ' объявить long и заполнить значение

    Dim lngValue As Long

    lngValue = 44055

    'преобразовать длинную строку в строку с символ валюты

    strMoney = Format (lngValue, "$ #, ## 0")

    'просмотреть результат

    MsgBox strMoney

    End Sub

    OS Архитектура Размер «длинного» типа
    Окна IA-32 4 байта
    Intel® 64 4 байта
    Linux IA-32 4 байта
    Intel® 64 8 байтов
    Mac OS Intel® 64 8 байтов