CSC/ECE 517 Fall 2012/ch1 1w21 aa
Primitive Objects
Introduction
Primitive datatypes are those that are not defined in terms of other data types. It is a basic or in-built type that a programming language provides for its users. These data types can be used for building other complex and composite data types [1]. In most languages, primitive types usually consist of basic value types for representing the data to be stored. As these data types are built-in, the compilers for these languages usually provide inbuilt support for these data types and so would support most basic operations. In dynamically typed languages like Ruby, these are represented as objects and are referred to as primitive objects. This article discusses the various primitive data types/objects that are present in various objected oriented programming languages and their benefits.
Primitive data types in C++
C++ is a statically typed, objected oriented programming language. It is widely used on a lot of hardware and software platforms. As C++ just adds object oriented features and a few other enhancements to C, the primitive data types that it provides are same as those provided by C[2]. They are described below [3].
Name | Description | Size | Range |
---|---|---|---|
int | Basic numerical data. Can have modifiers that vary size and range. | 4 bytes | -2,147,483,648 to 2,147,483,647 |
char | Can hold one character of data like an alphabet, number, or symbol represented in ASCII | 1 byte | -128 to 127 |
wchar_t | used for storing compiler-defined wide characters and unicode characters [4] | compiler defined | compiler defined |
float | single precision floating-point | 4 bytes | ± 3.402,823,4 * 10^38 |
double | double precision floating-point | 8 bytes | +/–1.7 * 10^308 [5] |
bool | represents logical values | 1 byte | true/false |
void | generic identifier that does not identify type [6] | Does not exist | Does not exist |
C++ allows variables of any of these data types to be created and also supports using these data types to construct complex data types like structures and classes. C++ also provides pointers that can be used to store the address of a variable of any simple or complex data type.
Primitive data types in Java
There is a certain group of data types that is used very frequently by the programmer. These types are included in the Java language as the primitive data types.These data types have a fixed size which does not change from one system to another and adds to the portability feature of java. There are 8 primitive data types defined in java which are as follows:[7]
Name | Description | Size(in bits) | Range | Usage | Default Value |
---|---|---|---|---|---|
byte | Signed two's complement integer | 8 bits | -128 to 127 | This datatype can be used in arrays where there is a space constraint to save memory. | 0 |
short | Signed two's complement integer | 16 bits | -32,768 to 32,767 | This datatype can also be used to save memory in large arrrays. | 0 |
int | signed two's complement integer | 32 bits | -2,147,483,648 to 2,147,483,647 | This datatype is generally the default datatype for all the numbers we use in our program. | 0 |
long | signed two's complement integer | 64 bits | -9,223,372,036,854,775,808 to 9,223,373,036,854,775,807 | This type is used when we require a value that is outside the range of values provided by int. | 0L |
float | Single-precision IEEE 754 floating point | 32 bits | 32-bit IEEE 754 floating-point numbers. | Use this datatype to save memory in large arrays. | 0.0f |
double | Double-precision 64-bit IEEE 754 floating point | 64 bits | 64-bit IEEE 754 floating-point numbers. | This data type is generally the default for decimal values. | 0.0d |
boolean | Boolean | 1- bit | false, true | Use this data type for flags that track a true or false condition. | false |
char | a char is a single 16-bit character encoded using Unicode | 16 bit | Unicode character \u0000(0) through unicode character \uffff(65,535) | This type is used to define single characters. | '\u0000' |
Besides these 8 primitive data types java provides support to characterstrings through Java.lang.String class. String is not a primitive datatype but its usage and functionality makes us think of it being so.
Primitive data types in C#
C# is a statically-typed object oriented programming language. C# provides all the data types that are available in Java, and adds support for unsigned numerals and a new 128-bit high-precision floating-point type. All primitive data types in C# are objects in the System namespace. The various primitive data types in C# are defined below:[8]
Name | .NET Class | Size | Description | Range |
---|---|---|---|---|
byte | System.Byte | 8 bits | 8-bit unsigned integral type. | 0 to 255 |
sbyte | System.SByte | 8 bits | signed two's complement integer | -128 to 127 |
short | System.Int16 | 16 bits | 16-bit signed integral type. | -32,768 to 32,767 |
ushort | System.UInt16 | 16 bits | 16-bit unsigned integral type. | 0 to 65,535 |
int | Int32 | 32 bits | signed two's complement integer | -2,147,483,648 to 2,147,483,647 |
uint | System.Int32 | 32 bits | 32-bit signed integral type. | 0 to 4,294,967,295 |
long | System.Int64 | 64 bits | 64-bit signed integral type. | -9,223,372,036,854,775,808 to 9,223,373,036,854,775,807 |
ulong | System.UIint64 | 64 bits | 64-bit unsigned integral type. | 0 to 18,446,744,073,709,551,615 |
float | System.Single | 32 bits | Single-precision floating-point type. | -3.402823e38 to 3.02823e38 |
double | System.Double | 64 bits | Double-precision floating-point type. | -1.79769313486232e308 to 1.79769313486232e308 |
bool | System.Boolean | 1 bit | Logical Boolean type | false, true |
char | System.Char | 16 bits | A 16-bit Unicode character. | Unicode character \u0000 through unicode character \uffff |
object | System.Object | N/A | Ultimate base type of all other types. | N/A |
string | System.String | N/A | A sequence of Unicode characters. | N/A |
decimal | System.Decimal | 128 | Precise decimal with 28 significant digits. | ±1.0 × 10e−28 to ±7.9 × 10e28 |