Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fundamental Data Types

Similar presentations


Presentation on theme: "Fundamental Data Types"— Presentation transcript:

1 Fundamental Data Types

2 Declaration All variables must be declared before being used.
Tells compiler to set aside an appropriate amount of space in memory to hold a value. Enables the compiler to perform operations using the declared variables.

3 Basic Data Types char character int integer float floating-point
double double floating-point void valueless

4 Modifying the Basic Types
Type modifier: signed unsigned long short When a type modifier is used by itself, then int is assumed. Modifier Same As signed signed int unsigned unsigned int long long int short short int

5 Data Type char Have Seen: Chars are treated as small integers & conversely small ints are treated as chars. char c = ‘a’; printf (“%c”, c + 1) b printf (“%d”, c + 2) 99 Each char variable stored in 1 Byte 8 Bits: a 1 1 1

6 String of binary digits are called bit strings.
A bit string is interpreted as a binary number bnbn-1……b2b1b0 a This bit string has the value: 1 25 + 120= 97

7 3 types: 1) char 2) unsigned char 3) signed char Each uses 1 Byte. Signed char to 127 Unsigned char to 255

8 Data Type int INTEGERS : Include the natural counting numbers and their negatives. INTEGRAL DATA TYPES: int short long unsigned

9 word size(bits) of the machine is machine dependent
The magnitude of the number that an int variable can hold depends on ___________? 2 Byte word ~ K To K -215, …, -3, -2, -1, 0, 1, 2, 3, …, 215-1 4 Byte word ~ -2 Billion To +2 Billion -231, …. -3, -2, -1, 0, 1, 2, 3, …, 231-1 word size(bits) of the machine is machine dependent

10 Integer overflow: Value too large for defined Storage Location.
Typically program continues to run but incorrect results. The programmer must strive at all times to avoid integer overflow.

11 Types short, long, unsigned
short - used where conserving storage is a concern (usually 2 Bytes). -32 Thousand To Thousand -215, , …, -3, -2, -1, 0, 1, 2, 3, …, 215-1 long - needed for larger integers (usually 4 bytes). -2 Billion To +2 Billion -231, , …, -3, -2, -1, 0, 1, 2, 3, …, 231-1

12 Unsigned - no sign bit, same number bytes as int.
The range, u, of values: 0  u  2wordsize-1 2 Byte word ~ 0 To + 64 Thousand 0, 1, 2, 3, …, 216-1 4 Byte word ~ 0 To + 4 Billion 0, 1, 2, 3, …, 232-1

13 Suffix: u - 20u l – 20l ul - 20ul (case not significant) IF no suffix with constant - system will choose the first of : int - long - unsigned long That can hold the value.

14 The Floating Types float double long double Suffixes for constants
f or F float F l or L long double L Any unsuffixed floating constant is of type double (working type).

15 Notation: exponential or decimal
Must have Exponent or Dec pt or Both. e e 0e0 correct 0.0 .e0 wrong May not contain any blanks or special characters. Typical Storage: Float < Double

16 Float: 4 Bytes - about 6 decimal places of accuracy- single precision.
Precision: The number of significant decimal digits that floating value carries. Range: Limits of largest & smallest possible values that can be in a variable of that type. Float: Bytes - about 6 decimal places of accuracy- single precision. Double: 8 Bytes - about 15 decimal places of accuracy- double precision.

17 Internal Representation
FLOAT: SEEEEEEEE mmmmm…m DOUBLE: SEEEEEEEEEEE mmmmmmm…m Implied mantissa of 1 is not stored. Sign bit (1 for neg-otherwise pos).

18 Float: Precision: significant digits. Range: to 10+38 0.d1d2d3d4d5d6  10n Double: Precision: 15 significant digits (252  1015) Range: to  103

19 Note: 1. Not all Real numbers are exactly representable in binary memory. 2. Floating Arithmetic ops, unlike integer arithmetic, may not be exact.

20 Compile-Time Operator sizeof
Unary operator used to find the number of Bytes needed to store an object. sizeof(object) Object Data type int , float, … Expression a + b Array Will cover later Structure

21 Assuming that integers are 4 bytes and doubles are 8 bytes.
double f; printf("%d ",sizeof (f)); printf(''%d", sizeof(int)); 4

22 sizeof(char) = 1 sizeof(short)  sizeof(int)  sizeof(long) sizeof(signed)=sizeof(unsigned)=sizeof(int) sizeof(float) <= sizeof(double ) <= sizeof( long double)

23 Conversions When constants and variables of different types are mixed in an expression, the compiler converts all operands to the type of the largest operand- Called Type Promotion. First, all char and short values are automatically elevated to int. Called integral promotion. int + int = int short short = int Arithmetic Conversion (See pg. 217)

24 char ch; int i; float f; double d,result; result= (ch / i) + (f * d) – (f + i); int double float double

25 Casts Casts - Explicit conversions. (type) expression If i is int:
(float) i will change expression value to float, i is not changed. (float) i/2

26 Apply to an Expression:
(float) (‘c’ + 3) Cannot apply to an Assignment: (int) f = 3: illegal As an unary operator, a cast has the same precedence as any other unary operator. (float) i + 3 ( (float) i ) + 3

27 /* print i and i/2 with fractions */
int main(void)  {   int i;   for(i=l; i<=100; ++i)      printf(''%d //2 is: %f \n", i, (float) i /2); return 0; }

28 General forms: (int) char expression- ordinal value of char expression (char) int expression- character with the ordinal value of int expression (int) float expression- truncates the float expression (float) int expression- converts int to float (double) float exp- converts float to double


Download ppt "Fundamental Data Types"

Similar presentations


Ads by Google