1 / 28

Fundamental Data Types

Learn about fundamental data types in programming, including variable declaration, basic data types, modifying basic types, and integer and floating point types.

priced
Download Presentation

Fundamental Data Types

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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: signedunsignedlongshort • When a type modifier is used by itself, then int is assumed. ModifierSame 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: 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 a 0 1 1 0 0 0 0 1

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

  7. 3 types: 1) char 2) unsigned char 3) signed char Each uses 1 Byte. Signed char -128 to 127 Unsigned char 0 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 ~ -32 K To +32K -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

  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 +32 Thousand -215, -215+1, …, -3, -2, -1, 0, 1, 2, 3, …, 215-1 • long - needed for larger integers (usually 4 bytes). -2 Billion To +2 Billion -231, -231+1, …, -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 floatdoublelong double • Suffixes for constants f or F float 3.7 F l or L long double 3.7 L • Any unsuffixed floating constant is of type double (working type).

  15. Notation:exponential or decimal Must have Exponent or Dec pt or Both. 1.234567e5 123456.7 1.234567e-3 0.001234567 0e0correct0.0 .e0wrong May not contain any blanks or special characters. • Typical Storage: Float < Double

  16. 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: 4 Bytes - about 6 decimal places of accuracy- single precision. Double: 8 Bytes - about 15 decimal places of accuracy- double precision.

  17. Internal Representation FLOAT: 01 8 9 31 SEEEEEEEEmmmmm…m DOUBLE: 01 11 12 63 SEEEEEEEEEEEmmmmmmm…m Implied mantissa of 1 is not stored. Sign bit (1 for neg-otherwise pos).

  18. Float: Precision: 6 significant digits. Range: 10-38 to 10+38 0.d1d2d3d4d5d6 10n Double: Precision: 15 significant digits (252 1015) Range: 10-308 to 10+308 0.123451234512345 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 ofBytes 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));8 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 TypePromotion. • 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); intdouble 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

More Related