Difference between revisions of "Objective-C 2.0 Data Types"
m (Text replacement - "<google>ADSDAQBOX_FLOW</google>" to "<htmlet>adsdaqbox_flow</htmlet>") |
m (Text replacement - "<google>BUY_OBJC</google>" to "<htmlet>objc<htmlet>") |
||
Line 7: | Line 7: | ||
<hr> | <hr> | ||
− | < | + | <htmlet>objc<htmlet> |
When we look at the different types of software that run on computer systems, from financial applications to graphics intensive games, it is easy to forget that computers are really just binary machines. Binary systems work in terms of 0 and 1, true or false, set and unset. All the data sitting in RAM, stored on disk drives and flowing through circuit boards and buses are nothing more than sequences of 1s and 0s. Each 1 or 0 is referred to as a ''bit'' and bits are grouped together in blocks of 8, each group being referred to as a ''byte''. When people talk about 32-bit and 64-bit computer systems they are talking about the number of bits that can be handled simultaneously by the CPU bus. A 64-bit CPU, for example, is able to handle data in 64-bit blocks, resulting in faster performance than a 32-bit based system. | When we look at the different types of software that run on computer systems, from financial applications to graphics intensive games, it is easy to forget that computers are really just binary machines. Binary systems work in terms of 0 and 1, true or false, set and unset. All the data sitting in RAM, stored on disk drives and flowing through circuit boards and buses are nothing more than sequences of 1s and 0s. Each 1 or 0 is referred to as a ''bit'' and bits are grouped together in blocks of 8, each group being referred to as a ''byte''. When people talk about 32-bit and 64-bit computer systems they are talking about the number of bits that can be handled simultaneously by the CPU bus. A 64-bit CPU, for example, is able to handle data in 64-bit blocks, resulting in faster performance than a 32-bit based system. |
Revision as of 21:05, 1 February 2016
Previous | Table of Contents | Next |
Building and Installing GNUstep on Linux | Working with Variables and Constants in Objective-C |
\a - Sound alert
\b - Backspace
\f - Form feed
\n - New line
\r - Carriage return
\t - Horizontal tab
\v - Vertical tab
\\ - Backslash
\" - Double quote (used when placing a double quote into a string declaration)
\' - Single quote (used when placing a double quote into a string declaration)
float Data Type
The Objective-C float data type is used to store floating point values, in other words values containing decimal places. For example, 456.12 would be stored in a float data type. In practice, all floating point values are stored as a different data type (called double) by default. We will be covering the double data type next, but if you specifically want to use a float data type, you must append an f into the end of the value. For example:
float myfloat = 123.432f
For convenience when working with exceptionally large number, both floating point and double data type values can be specified using scientific notation (also known as standard form or exponential notation). For example, we can express 67.7 x 104 in Objective-C as:
float myfloat = 67.7e4
double Data Type
The Objective-C double data type is used to store larger values than can be handled by the float data type. The term double comes from the fact that a double can handle values twice the size of a float. As previously mentioned, all floating point values are stored as double data types unless the value is followed by an 'f' to specifically specify a float rather than as a double.
id Data Type
As we will see in later chapters of this book, Objective-C is an object oriented language. As such much of the way a program will be structured is in the form of reusable objects. These objects are called upon to perform tasks and return results. Often, the information passed into an object and the results returned will be in the form of yet another object. The id data type is a general purpose data type that can be used to store a reference to any object, regardless of its type.
BOOL Data Type
Objective-C, like other languages, includes a data type for the purpose of handling true or false (1 or 0) conditions. Such a data type is declared using either the _Bool or BOOL keywords. Both of the following expressions are valid:
_Bool flag = 0;
BOOL secondflag = 1;
Objective-C Data Type Qualifiers
So far we have looked at the basic data types offered within the context of the Objective-C programming language. We have seen that data types are provided for a number of different data declaration and storage needs and that each data type has associated with it some constraints in terms of what kind of data it can hold. In fact, it is possible to modify some of these constraints by using qualifiers. A number of such qualifiers are available and we will look at each one in turn in the remainder of this chapter.
long
The long qualifier is used to extend the value range of a data type. For example, to increase the range of an integer variable, the declaration is prefixed by the qualifier:
long int mylargeint;
The amount by which a data type's range is increased through the use of the long qualifier is system dependent, though on many modern systems int and long int both have the same range, making use of the qualifier unnecessary. The long qualifier may also be applied to the double data type. For example:
long double mydouble;
long long
It is safe to think of the long long qualifier as being equivalent to extra long. In the case of an int data type, the application of a long long qualifier typically will change the range from 32-bit up to 64-bit:
long long int mylargeint;
short
So far we have looked at qualifiers that increase the storage space, and thereby the value range, of data types. The short qualifier can be used to reduce the storage space and range of the int data type. This effectively reduces the integer to 16-bits in width, limiting the signed value range to −32,768 to +32,767:
short int myshort;
signed / unsigned
By default, an integer is assumed to be signed. In other words the compiler assumes that an integer variable will be called upon to store either a negative or positive number. This limits the extent that the range can reach in either direction. For example, a 32-bit int has a range of 4,294,967,295. In practice, because the value could be positive or negative the range is actually −2,147,483,648 to +2,147,483,647. If we know that a variable will never be called upon to store a negative value, we can declare it as unsigned, thereby extending the (positive) range to 0 to +4,294,967,295. An unsigned int is specified as follows:
unsigned int myint;
Qualifiers may also be combined, for example to declare an unsigned, short integer:
unsigned short int myint = 10;
Note that what using unsigned, signed, short and long with integer values, the int keyword is optional. The following are all valid:
short myint; long myint; unsigned myint; signed myint;
Summary
Data types are the basic building blocks of just about every programming language and Objective-C is no exception. Now that we have covered these basics we will move on to the next chapter and begin talking about the use of variables.
<google>BUY_OBJC_BOTTOM</google>
Previous | Table of Contents | Next |
Building and Installing GNUstep on Linux | Working with Variables and Constants in Objective-C |