0% found this document useful (0 votes)
19 views5 pages

A First C Program (Mixing Datatypes) : Department of Computer and Information Science, School of Science, IUPUI

This document is a lecture on data type conversion in C programming from Dale Roberts. It discusses two main rules for data type conversion: 1) smaller types like char and short convert to int, and float converts to double, and 2) in expressions, higher precision types like double, long, and unsigned take precedence over lower types like int. It provides examples of expressions and their resulting data types. It also notes some additional points about conversions between signed and unsigned integers.

Uploaded by

Mohammed Jeelan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views5 pages

A First C Program (Mixing Datatypes) : Department of Computer and Information Science, School of Science, IUPUI

This document is a lecture on data type conversion in C programming from Dale Roberts. It discusses two main rules for data type conversion: 1) smaller types like char and short convert to int, and float converts to double, and 2) in expressions, higher precision types like double, long, and unsigned take precedence over lower types like int. It provides examples of expressions and their resulting data types. It also notes some additional points about conversions between signed and unsigned integers.

Uploaded by

Mohammed Jeelan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
You are on page 1/ 5

Department of Computer and Information Science,

School of Science, IUPUI

A First C Program
(mixing datatypes)

Dale Roberts, Lecturer


Computer Science, IUPUI
E-mail: [email protected]

Dale Roberts
Data Type Conversion
Rule #1
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

Dale Roberts
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 shortint, int/int, charint, int-int
u * 3 i unsigned int(3)unsigned,
unsigned*unsigned=unsigned,
intunsigned, unsigned-unsigned=unsigned
u * 3.0 i double unsigneddouble, double*double,
intdouble, double-double=double
c + i int char int
c + 1.0 double char int (rule 1), intdouble(rule 2)
3 * s * l long shortint, int*int, intlong, long*long

Dale Roberts
Data Type Conversion (cont.)
Note:
1. Conversion of int to long preserves sign, so does short
2. 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 */

Dale Roberts
3. 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? */
4. Unsigned int to int:
there is not actual conversion between int and unsigned int.
Example:(Assuming 2s 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= 65535 */

Dale Roberts

You might also like