fbpx
Wikipedia

Primitive data type

In computer science, primitive data types are a set of basic data types from which all other data types are constructed.[1] Specifically it often refers to the limited set of data representations in use by a particular processor, which all compiled programs must use. Most processors support a similar set of primitive data types, although the specific representations vary.[2] More generally, "primitive data types" may refer to the standard data types built into a programming language (built-in types).[3][4] Data types which are not primitive are referred to as derived or composite.[3]

Primitive types are almost always value types, but composite types may also be value types.[5]

Common primitive data types edit

The most common primitive types are those used and supported by computer hardware, such as integers of various sizes, floating-point numbers, and Boolean logical values. Operations on such types are usually quite efficient. Primitive data types which are native to the processor have a one-to-one correspondence with objects in the computer's memory, and operations on these types are often the fastest possible in most cases.[6] Integer addition, for example, can be performed as a single machine instruction, and some offer specific instructions to process sequences of characters with a single instruction.[7] But the choice of primitive data type may affect performance, for example it is faster using SIMD operations and data types to operate on an array of floats.[6]: 113 

Integer numbers edit

An integer data type represents some range of mathematical integers. Integers may be either signed (allowing negative values) or unsigned (non-negative integers only). Common ranges are:

Size (bytes) Size (bits) Names Signed range (two's complement representation) Unsigned range
1 byte 8 bits Byte, octet, minimum size of char in C99( see limits.h CHAR_BIT) −128 to +127 0 to 255
2 bytes 16 bits x86 word, minimum size of short and int in C −32,768 to +32,767 0 to 65,535
4 bytes 32 bits x86 double word, minimum size of long in C, actual size of int for most modern C compilers,[8] pointer for IA-32-compatible processors −2,147,483,648 to +2,147,483,647 0 to 4,294,967,295
8 bytes 64 bits x86 quadruple word, minimum size of long long in C, actual size of long for most modern C compilers,[8] pointer for x86-64-compatible processors −9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 0 to 18,446,744,073,709,551,615

Floating-point numbers edit

A floating-point number represents a limited-precision rational number that may have a fractional part. These numbers are stored internally in a format equivalent to scientific notation, typically in binary but sometimes in decimal. Because floating-point numbers have limited precision, only a subset of real or rational numbers are exactly representable; other numbers can be represented only approximately. Many languages have both a single precision (often called "float") and a double precision type (often called "double").

Booleans edit

A boolean type, typically denoted "bool" or "boolean", is typically a logical type that can have either the value "true" or the value "false". Although only one bit is necessary to accommodate the value set "true" and "false", programming languages typically implement boolean types as one or more bytes.

Many languages (e.g. Java, Pascal and Ada) implement booleans adhering to the concept of boolean as a distinct logical type. Some languages, though, may implicitly convert booleans to numeric types at times to give extended semantics to booleans and boolean expressions or to achieve backwards compatibility with earlier versions of the language. For example, early versions of the C programming language that followed ANSI C and its former standards did not have a dedicated boolean type. Instead, numeric values of zero are interpreted as "false", and any other value is interpreted as "true".[9] The newer C99 added a distinct boolean type _Bool (the more intuitive name bool as well as the macros true and false can be included with stdbool.h),[10] and C++ supports bool as a built-in type and "true" and "false" as reserved words.[11]

Specific languages edit

Java edit

The Java virtual machine's set of primitive data types consists of:[12]

  • byte, short, int, long, char (integer types with a variety of ranges)
  • float and double, floating-point numbers with single and double precisions
  • boolean, a Boolean type with logical values true and false
  • returnAddress, a value referring to an executable memory address. This is not accessible from the Java programming language and is usually left out.[13][14]

C basic types edit

The set of basic C data types is similar to Java's. Minimally, there are four types, char, int, float, and double, but the qualifiers short, long, signed, and unsigned mean that C contains numerous target-dependent integer and floating-point primitive types.[15] C99 extended this set by adding the boolean type _Bool and allowing the modifier long to be used twice in combination with int (e.g. long long int).[16]

XML Schema edit

The XML Schema Definition language provides a set of 19 primitive data types:[17]

  • string: a string, a sequence of Unicode code points
  • boolean: a boolean
  • decimal: a number represented with decimal notation
  • float and double: floating-point numbers
  • duration, dateTime, time, date, gYearMonth, gYear, gMonthDay, gDay, and gMonth: Calendar dates and times
  • hexBinary and base64Binary: binary data encoded as hexadecimal or Base64
  • anyURI: a URI
  • QName: a qualified name
  • NOTATION: a QName declared as a notation in the schema. Notations are used to embed non-XML data types.[18] This type cannot be used directly - only derived types that enumerate a limited set of QNames may be used.

JavaScript edit

In JavaScript, there are 7 primitive data types: string, number, bigint, boolean, undefined, symbol, and null. These are not objects and have no methods.[19]

Visual Basic .NET edit

In Visual Basic .NET, the primitive data types consist of 4 integral types, 2 floating-point types, a 16-byte decimal type, a boolean type, a date/time type, a Unicode character type, and a Unicode string type.[20]

Rust edit

Rust has primitive unsigned and signed fixed width integers in the format u or i respectively followed by any bit width that is a power of two between 8 and 128 giving the types u8, u16, u32, u64, u128, i8, i16, i32, i64 and i128.[21] Also available are the types usize and isize which are unsigned and signed integers that are the same bit width as a reference with the usize type being used for indices into arrays and indexable collection types.[21]

Rust also has:

  • bool for the boolean type.[21]
  • f32 and f64 for 32 and 64-bit floating point numbers.[21]
  • char for a unicode character. Under the hood these are unsigned 32-bit integers with values that correspond to the char's codepoint but only values that correspond to a valid unicode scalar value are valid.[21]

Built-in types edit

Built-in types are distinguished from others by having specific support in the compiler or runtime, to the extent that it would not be possible to simply define them in a header file or standard library module.[22] Besides integers, floating-point numbers, and Booleans, other built-in types include:

Characters and strings edit

A character type is a type that can represent all Unicode characters, hence must be at least 21 bits wide. Some languages such as Julia include a true 32-bit Unicode character type as primitive.[23] Other languages such as JavaScript, Python, Ruby, and many dialects of BASIC do not have a primitive character type but instead add strings as a primitive data type, typically using the UTF-8 encoding. Strings with a length of one are normally used to represent single characters.

Some languages have "character" types that are too small to represent all Unicode characters. These are more properly categorized as integer types that have been given a misleading name. For example C includes a char type, but it is defined to be the smallest addressable unit of memory, which several standards (such as POSIX) require to be 8 bits. Recent versions of these standards refer to char as a numeric type. char is also used for a 16-bit integer type in Java, but again this is not a Unicode character type.[24]

The term "string" also does not always refer to a sequence of Unicode characters, instead referring to a sequence of bytes. For example, x86-64 has "string" instructions to move, set, search, or compare a sequence of items, where an item could be 1, 2, 4, or 8 bytes long.[25]

See also edit

References edit

  1. ^ Stone, R. G.; Cooke, D. J. (5 February 1987). Program Construction. Cambridge University Press. p. 18. ISBN 978-0-521-31883-9.
  2. ^ Wikander, Jan; Svensson, Bertil (31 May 1998). Real-Time Systems in Mechatronic Applications. Springer Science & Business Media. p. 101. ISBN 978-0-7923-8159-4.
  3. ^ a b Khurana, Rohit. Data and File Structure (For GTU), 2nd Edition. Vikas Publishing House. p. 2. ISBN 978-93-259-6005-3.
  4. ^ Chun, Wesley (2001). Core Python Programming. Prentice Hall Professional. p. 77. ISBN 978-0-13-026036-9.
  5. ^ Olsen, Geir; Allison, Damon; Speer, James (1 January 2008). Visual Basic .NET Class Design Handbook: Coding Effective Classes. Apress. p. 80. ISBN 978-1-4302-0780-1.
  6. ^ a b Fog, Agner. "Optimizing software in C++" (PDF). p. 29. Retrieved 28 January 2022. Integer operations are fast in most cases, [...]
  7. ^ "Single Instruction Single Data - an overview | ScienceDirect Topics".
  8. ^ a b Fog, Agner (2010-02-16). "Calling conventions for different C++ compilers and operating systems: Chapter 3, Data Representation" (PDF). Retrieved 2010-08-30.
  9. ^ Kernighan, Brian W; Ritchie, Dennis M (1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. p. 41. ISBN 0-13-110163-3.
  10. ^ "Boolean type support library". devdocs.io. Retrieved October 15, 2020.
  11. ^ "Bool data type in C++". GeeksforGeeks. 5 June 2017. Retrieved October 15, 2020.
  12. ^ Lindholm, Tim; Yellin, Frank; Bracha, Gilad; Buckley, Alex (13 February 2015). "Chapter 2. The Structure of the Java Virtual Machine". The Java® Virtual Machine Specification.
  13. ^ Cowell, John (18 February 1997). Essential Java Fast: How to write object oriented software for the Internet. Springer Science & Business Media. p. 27. ISBN 978-3-540-76052-8.
  14. ^ Rakshit, Sandip; Panigrahi, Goutam (December 1995). A Hand Book of Objected Oriented Programming With Java. S. Chand Publishing. p. 11. ISBN 978-81-219-3001-7.
  15. ^ Kernighan, Brian W.; Ritchie, Dennis M. (1988). "2.2 Data Types and Sizes". The C programming language (Second ed.). Englewood Cliffs, N.J. p. 36. ISBN 0131103709.{{cite book}}: CS1 maint: location missing publisher (link)
  16. ^ ISO/IEC 9899:1999 specification, TC3 (PDF). p. 255, § 6.2.5 Types.
  17. ^ Biron, Paul V.; Malhotra, Ashok. "XML Schema Part 2: Datatypes". www.w3.org (Second ed.). Retrieved 29 January 2022.
  18. ^ Phillips, Lee Anne (18 January 2002). "Declaring a NOTATION | Understanding XML Document Type Definitions". www.informit.com. Retrieved 29 January 2022.
  19. ^ "Primitive - MDN Web Docs Glossary: Definitions of Web-related terms". developer.mozilla.org. MDN. 8 June 2023.
  20. ^ "Types in Visual Basic". Microsoft Docs. 18 September 2021. Retrieved 18 May 2022.
  21. ^ a b c d e "Data Types - The Rust Programming Language". doc.rust-lang.org. Retrieved 2023-10-17.
  22. ^ "Built-in types (C++)". learn.microsoft.com. 17 August 2021.
  23. ^ "Strings · The Julia Language". docs.julialang.org. Retrieved 29 January 2022.
  24. ^ Mansoor, Umer (8 May 2016). "The char Type in Java is Broken". CodeAhoy. Retrieved 10 February 2020.
  25. ^ "I/O and string instructions". Retrieved 29 January 2022.

External links edit

  •   Media related to Primitive types at Wikimedia Commons

primitive, data, type, computer, science, primitive, data, types, basic, data, types, from, which, other, data, types, constructed, specifically, often, refers, limited, data, representations, particular, processor, which, compiled, programs, must, most, proce. In computer science primitive data types are a set of basic data types from which all other data types are constructed 1 Specifically it often refers to the limited set of data representations in use by a particular processor which all compiled programs must use Most processors support a similar set of primitive data types although the specific representations vary 2 More generally primitive data types may refer to the standard data types built into a programming language built in types 3 4 Data types which are not primitive are referred to as derived or composite 3 Primitive types are almost always value types but composite types may also be value types 5 Contents 1 Common primitive data types 1 1 Integer numbers 1 2 Floating point numbers 1 3 Booleans 2 Specific languages 2 1 Java 2 2 C basic types 2 3 XML Schema 2 4 JavaScript 2 5 Visual Basic NET 2 6 Rust 3 Built in types 3 1 Characters and strings 4 See also 5 References 6 External linksCommon primitive data types editThe most common primitive types are those used and supported by computer hardware such as integers of various sizes floating point numbers and Boolean logical values Operations on such types are usually quite efficient Primitive data types which are native to the processor have a one to one correspondence with objects in the computer s memory and operations on these types are often the fastest possible in most cases 6 Integer addition for example can be performed as a single machine instruction and some offer specific instructions to process sequences of characters with a single instruction 7 But the choice of primitive data type may affect performance for example it is faster using SIMD operations and data types to operate on an array of floats 6 113 Integer numbers edit Main article Integer computer science An integer data type represents some range of mathematical integers Integers may be either signed allowing negative values or unsigned non negative integers only Common ranges are Size bytes Size bits Names Signed range two s complement representation Unsigned range 1 byte 8 bits Byte octet minimum size of char in C99 see limits h CHAR BIT 128 to 127 0 to 255 2 bytes 16 bits x86 word minimum size of short and int in C 32 768 to 32 767 0 to 65 535 4 bytes 32 bits x86 double word minimum size of long in C actual size of int for most modern C compilers 8 pointer for IA 32 compatible processors 2 147 483 648 to 2 147 483 647 0 to 4 294 967 295 8 bytes 64 bits x86 quadruple word minimum size of long long in C actual size of long for most modern C compilers 8 pointer for x86 64 compatible processors 9 223 372 036 854 775 808 to 9 223 372 036 854 775 807 0 to 18 446 744 073 709 551 615 Floating point numbers edit Main article Floating point arithmetic A floating point number represents a limited precision rational number that may have a fractional part These numbers are stored internally in a format equivalent to scientific notation typically in binary but sometimes in decimal Because floating point numbers have limited precision only a subset of real or rational numbers are exactly representable other numbers can be represented only approximately Many languages have both a single precision often called float and a double precision type often called double Booleans edit Main article Boolean datatype A boolean type typically denoted bool or boolean is typically a logical type that can have either the value true or the value false Although only one bit is necessary to accommodate the value set true and false programming languages typically implement boolean types as one or more bytes Many languages e g Java Pascal and Ada implement booleans adhering to the concept of boolean as a distinct logical type Some languages though may implicitly convert booleans to numeric types at times to give extended semantics to booleans and boolean expressions or to achieve backwards compatibility with earlier versions of the language For example early versions of the C programming language that followed ANSI C and its former standards did not have a dedicated boolean type Instead numeric values of zero are interpreted as false and any other value is interpreted as true 9 The newer C99 added a distinct boolean type Bool the more intuitive name bool as well as the macros true and false can be included with stdbool h 10 and C supports bool as a built in type and true and false as reserved words 11 Specific languages editJava edit The Java virtual machine s set of primitive data types consists of 12 byte short int long char integer types with a variety of ranges float and double floating point numbers with single and double precisions boolean a Boolean type with logical values true and false returnAddress a value referring to an executable memory address This is not accessible from the Java programming language and is usually left out 13 14 C basic types edit Main article C data types Basic types The set of basic C data types is similar to Java s Minimally there are four types char int float and double but the qualifiers short long signed and unsigned mean that C contains numerous target dependent integer and floating point primitive types 15 C99 extended this set by adding the boolean type Bool and allowing the modifier long to be used twice in combination with int e g long long int 16 XML Schema edit The XML Schema Definition language provides a set of 19 primitive data types 17 string a string a sequence of Unicode code points boolean a boolean decimal a number represented with decimal notation float and double floating point numbers duration dateTime time date gYearMonth gYear gMonthDay gDay and gMonth Calendar dates and times hexBinary and base64Binary binary data encoded as hexadecimal or Base64 anyURI a URI QName a qualified name NOTATION a QName declared as a notation in the schema Notations are used to embed non XML data types 18 This type cannot be used directly only derived types that enumerate a limited set of QNames may be used JavaScript edit In JavaScript there are 7 primitive data types string number bigint boolean undefined symbol and null These are not objects and have no methods 19 Visual Basic NET edit In Visual Basic NET the primitive data types consist of 4 integral types 2 floating point types a 16 byte decimal type a boolean type a date time type a Unicode character type and a Unicode string type 20 Rust edit Rust has primitive unsigned and signed fixed width integers in the format u or i respectively followed by any bit width that is a power of two between 8 and 128 giving the types u8 u16 u32 u64 u128 i8 i16 i32 i64 and i128 21 Also available are the types usize and isize which are unsigned and signed integers that are the same bit width as a reference with the usize type being used for indices into arrays and indexable collection types 21 Rust also has bool for the boolean type 21 f32 and f64 for 32 and 64 bit floating point numbers 21 char for a unicode character Under the hood these are unsigned 32 bit integers with values that correspond to the char s codepoint but only values that correspond to a valid unicode scalar value are valid 21 Built in types editBuilt in types are distinguished from others by having specific support in the compiler or runtime to the extent that it would not be possible to simply define them in a header file or standard library module 22 Besides integers floating point numbers and Booleans other built in types include The void type and null pointer type a href Nullptr t html class mw redirect title Nullptr t nullptr t a in C and C23 Characters and strings see below Tuple in Standard ML Python Scala Swift Elixir List in Common Lisp Python Scheme Haskell Fixed point number with a variety of precisions and a programmer selected scale Complex number in C99 Fortran Common Lisp Python D Go This is two floating point numbers a real part and an imaginary part Rational number in Common Lisp Arbitrary precision Integer type in Common Lisp Erlang Haskell Associative arrays records and or sets in Perl PHP Python Ruby JavaScript Lua D Go Reference also called a pointer or handle or descriptor Symbols in Lisp First class function in all functional languages JavaScript Lua D Go and in newer standards of C Java C Perl Characters and strings edit A character type is a type that can represent all Unicode characters hence must be at least 21 bits wide Some languages such as Julia include a true 32 bit Unicode character type as primitive 23 Other languages such as JavaScript Python Ruby and many dialects of BASIC do not have a primitive character type but instead add strings as a primitive data type typically using the UTF 8 encoding Strings with a length of one are normally used to represent single characters Some languages have character types that are too small to represent all Unicode characters These are more properly categorized as integer types that have been given a misleading name For example C includes a char type but it is defined to be the smallest addressable unit of memory which several standards such as POSIX require to be 8 bits Recent versions of these standards refer to char as a numeric type char is also used for a 16 bit integer type in Java but again this is not a Unicode character type 24 The term string also does not always refer to a sequence of Unicode characters instead referring to a sequence of bytes For example x86 64 has string instructions to move set search or compare a sequence of items where an item could be 1 2 4 or 8 bytes long 25 See also editLanguage primitive List of data structures Data types Object type Primitive wrapper class Variable computer science References edit Stone R G Cooke D J 5 February 1987 Program Construction Cambridge University Press p 18 ISBN 978 0 521 31883 9 Wikander Jan Svensson Bertil 31 May 1998 Real Time Systems in Mechatronic Applications Springer Science amp Business Media p 101 ISBN 978 0 7923 8159 4 a b Khurana Rohit Data and File Structure For GTU 2nd Edition Vikas Publishing House p 2 ISBN 978 93 259 6005 3 Chun Wesley 2001 Core Python Programming Prentice Hall Professional p 77 ISBN 978 0 13 026036 9 Olsen Geir Allison Damon Speer James 1 January 2008 Visual Basic NET Class Design Handbook Coding Effective Classes Apress p 80 ISBN 978 1 4302 0780 1 a b Fog Agner Optimizing software in C PDF p 29 Retrieved 28 January 2022 Integer operations are fast in most cases Single Instruction Single Data an overview ScienceDirect Topics a b Fog Agner 2010 02 16 Calling conventions for different C compilers and operating systems Chapter 3 Data Representation PDF Retrieved 2010 08 30 Kernighan Brian W Ritchie Dennis M 1978 The C Programming Language 1st ed Englewood Cliffs NJ Prentice Hall p 41 ISBN 0 13 110163 3 Boolean type support library devdocs io Retrieved October 15 2020 Bool data type in C GeeksforGeeks 5 June 2017 Retrieved October 15 2020 Lindholm Tim Yellin Frank Bracha Gilad Buckley Alex 13 February 2015 Chapter 2 The Structure of the Java Virtual Machine The Java Virtual Machine Specification Cowell John 18 February 1997 Essential Java Fast How to write object oriented software for the Internet Springer Science amp Business Media p 27 ISBN 978 3 540 76052 8 Rakshit Sandip Panigrahi Goutam December 1995 A Hand Book of Objected Oriented Programming With Java S Chand Publishing p 11 ISBN 978 81 219 3001 7 Kernighan Brian W Ritchie Dennis M 1988 2 2 Data Types and Sizes The C programming language Second ed Englewood Cliffs N J p 36 ISBN 0131103709 a href Template Cite book html title Template Cite book cite book a CS1 maint location missing publisher link ISO IEC 9899 1999 specification TC3 PDF p 255 6 2 5 Types Biron Paul V Malhotra Ashok XML Schema Part 2 Datatypes www w3 org Second ed Retrieved 29 January 2022 Phillips Lee Anne 18 January 2002 Declaring a NOTATION Understanding XML Document Type Definitions www informit com Retrieved 29 January 2022 Primitive MDN Web Docs Glossary Definitions of Web related terms developer mozilla org MDN 8 June 2023 Types in Visual Basic Microsoft Docs 18 September 2021 Retrieved 18 May 2022 a b c d e Data Types The Rust Programming Language doc rust lang org Retrieved 2023 10 17 Built in types C learn microsoft com 17 August 2021 Strings The Julia Language docs julialang org Retrieved 29 January 2022 Mansoor Umer 8 May 2016 The char Type in Java is Broken CodeAhoy Retrieved 10 February 2020 I O and string instructions Retrieved 29 January 2022 External links edit nbsp Media related to Primitive types at Wikimedia Commons Retrieved from https en wikipedia org w index php title Primitive data type amp oldid 1190314886, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.