C Program Conversion of constants

Monday, October 27, 2008 | | 0 comments »

We have learned regarding C Program arithmetic instructions in the previous post.Here we are going to discuss regarding Integer and Float Conversions first.

Rules of implicit conversion of floating point and integer values in C :

1 . An arithmetic operation between an integer and integer always yields an integer result.

2 . An operation between a real and real always yields a real result.

3. An operation between an integer and real always yields a real result. In this operation the integer is first promoted to a real and then the operation is performed. Hence the result is real.

Examples :


Type Conversion in Assignments :


It may so happen that the type of the expression and the type of the variable on the left-hand side of the assignment operator may not be same.In such a case the value of the expression is promoted or demoted depending on the type of the variable on left-hand side of = .

Example 1. :

int i ;
float b ;
i = 3.5 ;
b = 30 ;

Here in the first assignment statement though the expression’s value is a float (3.5) it cannot be stored in i since it is an int. In such a case the float is demoted to an int and then its value is stored. Hence what gets stored in i is 3. Exactly opposite happens in the next statement. Here, 30 is promoted to 30.000000 and then stored in b, since b being a float variable cannot hold anything except a float value.

Example 2. :

float a, b, c ; int s ; s = a * b * c / 100 + 32 / 4 - 3 * 1.1 ;

Here, in the assignment statement some operands are ints whereas others are floats. As we know, during evaluation of the expression the ints would be promoted to floats and the result of the expression would be a float. But when this float value is assigned to s it is again demoted to an int and then stored in s.
Example 3. :

Note that though the following statements give the same result, 0, the results are obtained differently.

k = 2 / 9 ; k = 2.0 / 9 ; In the first statement, since both 2 and 9 are integers, the result is an integer, i.e. 0. This 0 is then assigned to k.

In the second statement 9 is promoted to 9.0 and then the division is performed. Division yields 0.222222.

However, this cannot be stored in k, k being an int. Hence it gets demoted to 0 and then stored in k.
48.5

Related posts :

Compilation and execution of c program
Instructions to write c program PART ONE AND TWO
COMPLETE C PROGRAMMING COURSE

Thank you for visiting PROGRAMMING BLOG. If you liked the post, please subscribe to my blog via email or RSS FEED.You can contact me here for any specific feed back .

I am requesting your's feedback.

Are you satisfied with the present post ?
Have you got sufficient information you are looking for here at this post and on the blog ?
What else is missing and what topics have to be incorporated in this blog ?
Let me know so that i can make it better .


COMMENT HERE and thank you for sparing your valuable time.

0 comments

Post a Comment