Presentation is loading. Please wait.

Presentation is loading. Please wait.

A First C Program (mixing datatypes)

Similar presentations


Presentation on theme: "A First C Program (mixing datatypes)"— Presentation transcript:

1 A First C Program (mixing datatypes)
Department of Computer and Information Science, School of Science, IUPUI A First C Program (mixing datatypes) Dale Roberts, Lecturer Computer Science, IUPUI

2 Data Type Conversion Rule #1 float  double
char, short  int float  double Rule #2 (double ← long ← unsigned ← int) If either operand is double, the other is converted to double, and the result is double Otherwise, if either operand is long, the other is converted to long, and the result is long Otherwise, if either operand is unsigned, the other is converted to unsigned, and the result is unsigned Otherwise, the operand must be int

3 Examples Example: c: char, u: unsigned, i: int, d: double, f:float,
s: short, l: long, Expression Final Data Type Explanation c – s / i int shortint, int/int, charint, int-int u * 3 – i unsigned int(3)unsigned, unsigned*unsigned=unsigned, intunsigned, unsigned-unsigned=unsigned u * 3.0 – i double unsigneddouble, double*double, intdouble, double-double=double c + i int charint c double charint (rule 1), intdouble(rule 2) 3 * s * l long shortint, int*int, intlong, long*long

4 Data Type Conversion (cont.)
Note: Conversion of int to long preserves sign, so does short Var = expr f = d; /* round off */ i = f; /* truncates fractions part, if the number is too big to fit, the result is undetermined */ i = l; s = i; and c = i; /* may eliminate high order bits */

5 If a specific type is required, the following syntax may be used, called cast operator.
(type) expr Example: float f=2.5; x = (int)f + 1; /* the result is 3, Q: will f value be changed? */ Unsigned int to int: there is not actual conversion between int and unsigned int. Example:(Assuming 2’s complement machine and int is 2 bytes long) unsigned i = 65535; int j; j = i; /* j will be –1 */ j = -2; unsigned i = 1 + j; /* i= */


Download ppt "A First C Program (mixing datatypes)"

Similar presentations


Ads by Google