Что именно представляет собой тип данных? - PullRequest
2 голосов
/ 11 марта 2012

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

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

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

Ответы [ 2 ]

6 голосов
/ 11 марта 2012

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

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

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

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

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

Обновление

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

0 голосов
/ 11 марта 2012

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

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

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

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