русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Long: -9223372036854775808. .9223372036854775807


Дата добавления: 2015-06-12; просмотров: 830; Нарушение авторских прав


Int: -2147483648..2147483647

Short: 0..-1

Char: 0..65535

Byte:0..-1

Значения long и int вполне очевидны — дробные бесконечности преобразовались в, соответственно, минимально и максимально воз-1^оЖные значения этих типов. Результат для следующих трех типов (short, char, byte) есть, по сути, дальнейшее сужение значений, полу­ченных для int, согласно второму шагу процедуры преобразования. А делается это, как было описано, просто за счет отбрасывания старших битов. Вспомним, что минимально возможное значение в битовом ви­де представляется как 1000..000(всего 32 бита для int, то есть единица и 31 ноль). Максимально возможное 1111..111(32 единицы). Отбра­сывая старшие биты, получаем для отрицательной бесконечности ре­зультат 0, одинаковый для всех трех типов. Для положительной же бес­конечности получаем результат, все биты которого равняются 1. Для знаковых типов byte и short такая комбинация рассматривается как -1, а для без знакового char - как максимально возможное значение, то есть 65535.

Может сложиться впечатление, что для char приведение дает точное значение. Однако это был частный случай - отбрасывание битов в боль­шинстве случаев все же дает искажение. Например, сужение дробного значения 2 миллиарда:

float f=2e9f;

pnnt((int)(char)f);

print((int)(char)-f);

Результатом будет:

37888 27648

Обратите внимание на двойное приведение для значений типа char в двух последних примерах» Понятно, что преобразование от char к int не приводит к потере точности, но позволяет распечатывать не символ, а его числовой код, что более удобно для анализа.

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



<== предыдущая лекция | следующая лекция ==>
Преобразование примитивных типов (расширение и сужение) | Преобразование ссылочных типов (расширение и сужение)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.655 сек.