ПОНЯТНО О Visual Basic NET

       

Integer, Long, Short, Byte – целые числа


Создайте проект с кнопкой и введите такую программу:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim a, b, c As Integer

        a = 201234567

        b = 201234567

        c = a + b

        WriteLine(c)

    End Sub

Каждая из переменных a и b имеет значение где-то около 200 миллионов. Работает программа нормально. Вот результат:

402469134

Посмотрим, насколько большие числа способна воспринимать наша программа. Добавим пару цифр к значению a:

a = 20123456789

VB подчеркивает литерал и выдает всплывающую подсказку об ошибке, в которой мы видим слово Integer. В чем дело?

Как видно из таблицы, число типа Integer занимает в памяти 4 байта. Значит, под переменные а и b компьютер отводит в памяти ячейки по 4 байта каждая. 4 байта – это небольшой объем памяти и уместиться в него может целое число не слишком большого размера, а именно, как мы видим в таблице – в диапазоне плюс-минус два миллиарда с небольшим. Мы же, дописав две цифры, превысили это число, вот VB и сказал нам, что типу Integer не по чину быть таким большим.

Зададим а и b значения двухмиллиардные:

        a = 2012345678

        b = 2012345678

VB не возражает, но когда мы запускаем проект и нажимаем на кнопку, выдает сообщение об ошибке, в котором мы видим слово overflow, что означает «переполнение».

Дело в том, что суммируя, вычитая или умножая числа типа Integer, VB присматривает, чтобы и результат умещался в тип Integer. Ведь два миллиарда плюс два миллиарда будет четыре миллиарда, а это слишком много для Integer.

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

(Длинное Целое). Под переменную типа Long компьютер, как мы видим в таблице, отводит в памяти 8 байтов и поэтому она может принимать значения чисел длиной в 19 цифр.

Объявите все три переменные, как Long. Тогда все будет в порядке. Вы скажете: это нелогично, достаточно было объявить типом Long одну переменную c! Попробуйте и посмотрите, будет ли работать программа. Не работает. Опять overflow!  VB считает, что так безопаснее. Строговато, но делать нечего. Впредь объявляйте все

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

Зачем нужен Integer, если есть Long? Ну, хотя бы для того, чтобы экономить память. Из соображений экономии можно использовать и типы Short и Byte (см. таблицу).

Задание 10.   

Население Москвы равняется  а=9000000 жителей. Население Васюков равняется b=1000 жителей. Вся Москва переехала в Васюки. Сколько там стало жителей? Используйте переменные величины – сначала типа Short, а когда не получится – Integer.



Содержание раздела