Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Десятичные типы




Типы данных с плавающей точкой

Как уже говорилось в главе 1, типы данных с плавающей точкой могут представлять числа, имеющие дробные части. В С# существуют два типа данных с плавающей точкой, float и double, представляющие числа с одинарной и двойной точностью соответственно. Для представления данных типа float выделяются 32 бита, что позволяет присваивать переменным значения чисел, находящихся в диапазоне от 1.5E-45 до 3.4Е+38. Для представления данных типа double выделяются 64 бита, что расширяет диапазон используемых чисел до величин из диапазона от 5Е-324 до 1.7Е+308. Чаще всего применяется тип double. Одна из причин этого в том, что многие математические функции в библиотеке классов C# (которой является библиотека.NET Framework) используют значения, имеющие тип double. Например, метод Sqrt(), определенный в стандартном классе System.Math, возвращает значение типа double, являющееся квадратным корнем его аргумента, также имеющего тип double. Ниже в качестве примера приведена программа, в которой для вычисления длины гипотенузы, заданной длинами двух катетов, используется метод Sqrt().

/*
В программе используется теорема Пифагора, позволяющая найти
длину гипотенузы по известным длинам катетов.
*/

using System;

class Hypot {
public static void Main() {
double x, y, z;

x = 3;
y = 4;

z = Math.Sqrt(x*x + y*y);

Обратите внимание на способ вызова метода Sqrt(). Имя метода отделено точкой от имени класса, членом которого он являетсЯ.

Console.WriteLine("Длина гипотенузы равна " + z);
}
}

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

Длина гипотенузы равна 5

Отметим еще одну особенность данной программы. Как уже говорилось, метод Sqrt() является членом класса Math. Обратите внимание на способ вызова метода Sqrt()- имя метода отделено точкой от имени класса, членом которого он является. Похожий способ записи нам уже встречался, когда перед именем метода WriteLine() стояло имя его класса Console. Не все стандартные методы нужно вызывать, указав вначале имя класса, в котором определен данный метод, но некоторые методы требуют именно такого вызова.

Десятичные типы не поддерживаются языками PASCAL и С++, но имеются в некоторых других языках, например, COBOL, PL/1. Эти типы применяются для внутримашинного представления таких данных, которые в первую очередь должны храниться в вычислительной системе и выдаваться пользователю по требованию и лишь во вторую очередь - обрабатываться (служить операндами вычислительных операций). Неслучайно эти типы впервые появились в языке COBOL, ориентированном на обработку экономической информации: в большинстве задач этой сферы важно прежде всего хранить и находить информацию, а ее преобразование выполняется сравнительно редко и сводится к простейшим арифметическим операциям.

Архитектура некоторых вычислительных систем (например, IBM System/390) предусматривает команды, работающие с десятичным представлением чисел, хотя эти команды и выполняются гораздо медленнее, чем команды двоичной арифметики. В других архитектурах операции с десятичными числами моделируются программно.

К десятичным типам относятся: десятичный тип с фиксированной точкой и тип шаблона.

ДЕСЯТИЧНЫЙ ТИП С ФИКСИРОВАННОЙ ТОЧКОЙ. В языке PL/1 десятичный тип с фиксированной точкой описывается в программе, как:

DECIMAL FIXED (m.d) или DECIMAL FIXED (m).

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

Внутримашинное представление данного типа носит название десятичного упакованного формата. Примеры представления чисел 963 и -1534 в таком формате приведены на рис. 2.6.

 

 

Рис. 2.6. Машинное представление десятичных чисел в упакованном формате

 

Каждая десятичная цифра числа занимает полбайта (4 двоичных разряда) и представляется в этом полубайте ее двоичным кодом. Еще полбайта занимает знак числа, который представляется двоичным кодом 1010 - знак "+" или 1011 - знак "-". Представление занимает целое число байт и при необходимости дополняется ведущим нулем.

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 368; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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