Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Данные целого типа






Для определения данных целого типа используются ключевые слова char, int, short, long, которые определяют диапазон значений и размер области памяти, выделяемой под переменные (табл. 2.1). Так, переменная типа charзанимает в памяти 1 байт, short – 2 байта, long – 4 байта. Размер переменной типа int определяется типом процессора (аппаратной платформой – см. § 2.1).

При объявлении целых типов можно использовать ключевые слова signed и unsigned, которые указывают, как интерпретируется старший бит объявляемой переменной. Если указано ключевое слово unsigned, то старший бит интерпретируется как часть числа, в противном случае старший бит интерпретируется как знаковый [6]. В случае отсутствия ключевого слова unsigned целая переменная считается знаковой. В том случае, если спецификатор типа состоит из ключевого типа signed или unsigned и далее следует идентификатор переменной, то она будет рассматриваться как переменная типа int. Отметим, что ключевые слова signed и unsigned не обязательны.

В памяти данные хранятся в двоичном коде. На рис. 2.1 изображено внутреннее представление данных целого типа.

Рис. 2.1. Внутреннее представление данных целых типов

Переменная типа char(signed char) занимает в памяти 1 байт, при этом старший бит хранит информацию о знаке числа: 0 соответствует положительному числу, 1 – отрицательному. Биты с 0-го по 6-й используются для записи значения числа. Запись в каждый из этих битов значения 1 соответствует наибольшему положительному числу, равному 127, при этом старший бит установлен в 0. Такое представление целых чисел называется прямым кодом. Для хранения отрицательных чисел используется представление чисел, называемое дополнительным кодом.

Получить дополнительный код отрицательного числа можно по следующему правилу:

в биты, предназначенные для хранения значения числа, записывается модуль отрицательного числа в прямом коде;

в старший (знаковый) бит помещается 1;

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

обратный код, т. е. 1 заменяется на 0, а 0 на 1;

к обратному коду числа прибавляется 1.

Рассмотрим дополнительный код для числа –1 (рис. 2.2).

Рис. 2.2. Дополнительный код отрицательного числа

Как видно из рис. 2.2, минимальное по модулю отрицательное число представлено единицами во всех двоичных разрядах, предназначенных для хранения числа. Если в эти биты записать нули, получится наибольшее по модулю отрицательное число. Для переменной типа char это значение равно минус 128.

Переменная типа unsigned char хранит целые положительные значения, при этом все 8 бит используются для записи числа. Такое внутреннее представление числа позволяет записывать в переменную значения в диапазоне от 0 до 255.

Мы рассмотрели примеры представления целых чисел для переменной типа char, так как это самый компактный тип, но то же самое представление имеют и остальные целые типы, различия только в размере памяти, занимаемой переменной.

Однако тип char по сравнению с другими целыми типами имеет особое назначение: он используется для представления символа или объявления строковых литералов. Следует помнить, что по умолчанию тип char или signed char интерпретируется как однобайтовая целая величина со знаком и с диапазоном значений от минус 128 до 127, хотя только значения в диапазоне 0 – 127 имеют символьные эквиваленты. Для представления символов русского алфавита модификатор типа идентификатора данных имеет вид unsigned char, так как коды русских букв превышают величину 127.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.