2012-03-11 3 views
2

Я понимаю, что такое тип данных (интуитивно). Но мне нужно формальное определение. Я не понимаю, если это набор, или это имена 'int' 'float' и т. Д. Формальное определение, найденное в wikipedia, сбивает с толку.Что такое тип данных?

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

Может ли кто-нибудь помочь мне с этим?

+1

Что вы понимаете по поводу слова «тип»? Не имеет значения, находится ли он в контексте программирования. – BoltClock

+1

Да, определение, использующее слова в определении, не особенно полезно: * «В компьютерном программировании ** тип данных ** является классификацией, идентифицирующей один из различных ** типов ** ** данных **, таких как число с плавающей запятой, integer или Boolean, которое определяет возможные значения для этого типа ... »* –

+1

@BoltClock Тип чего-то является« разнообразием »чего-то. – jsp99

ответ

6

Да. Это говорит о том, что тип данных имеет три части:

  1. Различные возможные значения. Так, например, восьмизначное целое число со знаком может иметь -127..128. Это, что в качестве набора значений В.

  2. Оперативного: так что 8-разрядное целое число может иметь +, -, * (умножить) и / (деление). Полное определение будет определять их как функции из V в V или возможно как функция из V в float для деления.

  3. Способ, которым он хранится - я как бы отдал его, когда сказал «восьмеричное целое число со знаком». Другая деталь заключается в том, что я предполагаю конкретное представление, как я показал диапазон значений.

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

Update

@Appy, есть некоторые места для различий в формальности. Я был немного утончен, потому что было уже поздно, и я внезапно почувствовал, что я предпочел дополнение или дополнение к нему - конечно, это дополнение к нему. Поэтому интерпретация включена в мое описание. Тем не менее, вы бы сказали, что это алгебраическая структура T = (V, O), где V - множество значений, O - набор функций из V в некоторый произвольный тип - помните, например, == == функция eq: V × V → {0,1}, поэтому вы не можете ожидать, что каждая операция будет в V.

+0

@ Charlie Спасибо за ответ :) Так я могу так сказать. Слово «тип данных» представляет собой набор ** {{диапазон значений для данных}, {функции, которые могут выполняться для данных}, how_to_store_data} ** – jsp99

+1

Вы забыли момент. ** 4. Интерпретация помещается в это внутреннее представление. ** (_this_ относится к пункту 3). Я наткнулся на это минуту назад в статье о Datatypes. – jsp99

+0

да, я так думаю. – MahdeTo

0

Я могу определить ее как классификацию определенного типа информации. Человеку легко различать разные типы данных. Обычно мы можем сразу сказать, является ли число процентом, временем или суммой денег. Мы делаем это с помощью специальных символов%,: и $.

В принципе, это концепция, которую я уверен, что вы обманываете. Для компьютеров, однако, тип данных определен и имеет различные связанные атрибуты, такие как размер, например, ключевое слово определения (иногда), значения, которые он может принимать (числа или символы, например), и операции, которые могут быть выполнены на нем, например, добавить вычитание для чисел и добавлять на строку или сравнивать символ и т. д. Они отличаются от языка к языку и даже от среды к env. (16 - 32 бит ints/32 - 64 envs./ и т. Д.).

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

+0

@ MahdeTo Спасибо за ответ :) Итак, что вы в основном пытаетесь сказать: тип данных - это набор правил на языке для представления конкретных данных? Пожалуйста, см. Мой комментарий к сообщению Charlies, а также ответьте на него :) – jsp99