[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.
[5] 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.
These numbers are stored internally in a format equivalent to scientific notation, typically in binary but sometimes in decimal.
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.
For example, early versions of the C programming language that followed ANSI C and its former standards did not have a dedicated Boolean type.
[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.
[22] Rust also has: 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.
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.