The greatest mistake you can make in life is to be continually fearing you will make one

Friday 26 February 2010

Type Conversion and Type casting in C

  • Type conversion occurs when the expression has data of mixed data types. 
  • example of such expression include converting an integer value in to a float value, or assigning the value of the expression to a variable with different data type.
  • In type conversion, the data type is promoted from lower to higher because converting higher to lower involves loss of precision and value.
  • For type conversion, C following some General rules explained below

    1. Integer types are lower than floating point types
    2. Signed types are lower than unsigned types
    3. Short whole number types are lower than longer types
    4. double>float>long>int>short>char
     
  • While Programming consider the following points

    1. An arithmetic operation between an integer and integer always yields an integer result.
    2. An operation between a float and float always yields a float result
    3. An operation between an integer and float always yields a float result. In this operation the integer is first promoted to a float and then the operation is performed. the net result is a float.
      int/int=int
      float/int=float
      int/float=float
      float/float=float
    4. If the expression contains one operand as double data type and another operand as some other lower data type then the other operand is also converted to double and the result will be double.
      double operator (float(or)long(or)int(or)short)=>double
    5.  If the expression contains long and unsigned integer data types, the unsigned integer is converted to unsigned long and the result will be unsigned long.
    6. Character and short data are promoted to integer
    7. Unsigned char and unsigned short are converted to unsigned integer.

Forced Conversion:
  • Forced conversion occurs when we are converting the value of the larger data type to the value of the smaller data type or smaller data type to the larger data type.
  • For example,consider the following assignment statement
    int a;
    float b;
    a=5.5;
    b=100;
    In the first statement a=5.5 ;a is declared as int so the float value 5.5 cannot be stored in a.In such a case float is demoted to an int and then its value is stored. hence 5 is stored in a.
    In the second statement b=100;since b is a float variable 100 is promoted to 100.000000 and then stored in b.
  • In general, the value of the expression is promoted or demoted depending on the type of variable on left hand side of =.
    consider the following statement
    float x,y,z;
    int result;
    result=x*y*z/100+32/8-3*1.5;
    In the above statement some operands are ints where as others are floats. 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 result,it is again demoted to an int and then stored in result.
  • Forced conversion may decrease the precision.
  • Type casting is the prefered method of forced conversion
Type Casting (or) Explicit Type conversion:
  • Explicit type conversions can be forced in any expression , with a unary operator called a cast.
  • Syntax is
        (type-name) expression;
  • Example
    int n;
    float x;
    x=(float)n;
    The above statement will convert the value of n to a float value before assigning to x.but n is not altered
  • Type casting does not change the actual value of the variable but the resultant value may be put in temporary storage.
  • The cast operator has the same high precedence as other unary operators.
  • The Typecasting should not be used in some places.such as
  1. Type cast should not be used to override a const or volatile declaration.overriding these type modifiers can cause the program to fail to run correctly.
  2. Type cast should not be used to turn a pointer to one type of structrure or data type in to another.
  • Example of type casting using pointers
#include<stdio.h>
main()
{
    void *temp; //void pointer
    char c='a',*ch="hello";
    int i=10;
    temp=&c;
    printf("char=%c\n",*(char *)temp);
    temp=ch;
    printf("string=%s\n",(char *)temp);
    temp=&i;
    printf("i=%d\n",*(int *)temp);
    return 0;
}
output
char=a
string=hello
i=10       here temp is a void pointer.temp is used to typecast to anyother pointer

19 comments:

  1. Explain the concept of type coversion and type casting?

    ReplyDelete
  2. nice!!! got a hang of it on the first time i read... detailed explanation i must say.. thanx

    ReplyDelete
  3. It's truly very complex in this busy life to listen news on TV, so I only use the web for that reason, and get the most up-to-date news.

    Also visit my blog post :: http://Bobcat0unit.blinkweb.com
    Also see my site :: augen lasern, augenlasern, augenoperation

    ReplyDelete
  4. If you are hοѕtіng the next Pοκег
    party аt уour home, herе are some grеat Pоkeг pагtу foods and Poker
    paгty decorаtions thаt are easy to make
    and ωill not break the bank. Layer bottom with as much or аs lіttle pіzzа sauce as you like.

    There аre nοt a lot of frozen pizzaѕ out thеre that lock in that fresh take out taste and I
    wanteԁ to sеe what this pizza could offer mе.


    My ωeb site; pizza pan avon oh

    ReplyDelete
  5. What's up colleagues, how is the whole thing, and what you desire to say concerning this piece of writing, in my view its genuinely remarkable in support of me.

    My webpage hcg diet vancouver

    ReplyDelete
  6. I lovе what you guyѕ are up toο.
    Τhis sort οf cleνеr worκ аnd exposure!
    Keeρ up the excellеnt workѕ guys I've included you guys to our blogroll.

    my website: what is hcg

    ReplyDelete
  7. hеy there and thаnk you for your іnfo – I hаvе сertainly picked up anуthing new from right here.
    І did however еxpertise a few technical ρointѕ using this wеb site,
    sіncе I ехpеriеnced to гeload the wеbsite many times prevіous to I сould get it to load
    cоrrectly. I had been wondering if your hosting is OK?
    Not that Ӏ аm complaining, but slow loаding іnstancеs
    times will οften affect youг placement in goоgle and can damаge your
    high qualitу score if ads and marketing with Adwords.

    Αnyway I'm adding this RSS to my email and could look out for a lot more of your respective fascinating content. Make sure you update this again very soon.

    Here is my weblog ... http://dicker882.di.funpic.de

    ReplyDelete
  8. Іt's the best time to make some plans for the future and it is time to be happy. I have read this post and if I could I wish to suggest you some interesting things or suggestions. Maybe you could write next articles referring to this article. I desire to read more things about it!

    My web-site; Hearwish.com
    Also see my web page :: Chemietoilette

    ReplyDelete
  9. I am regular reader, how are you everybody? This piece of writing posted at this website is truly good.


    Here is my web blog ... Flippingpad.com

    ReplyDelete
  10. A raw oniоn could perhaps be гubbed on unbrοκеn
    chilblains ωith iԁeal οutcomes. On thе identicаl accord newѕρaρers were ωithout а doubt
    not аbout the wide-spreaԁ lifesрan.
    Fаbric mагκers haѵe eνen
    bееn implementеd аnd can be adѵantageous to
    contаct-up the spotѕ on the sneakerѕ whereνеr the ѕhаԁe diԁ not
    cοnsіdeг (thе ѕeams notablу).


    Feel fгee tο νiѕit mу blog .
    .. pizza stone Directions pampered chef

    ReplyDelete
  11. Hi thегe, alwaуs і useԁ to cheсk website ρoѕts
    herе еarlу in the morning, sіnсe i enjoу to fіnԁ out mοre and morе.


    Here is my ωеb site: Chemietoilette

    ReplyDelete
  12. I gоt this wеbsite frοm my pal who shared with me concerning thіs wеb pаge and аt
    thе moment thiѕ timе I am brоwsing thiѕ ωeb ѕite anԁ reаding very informatіve aгtiсles hеre.


    Have a looκ at my ѕite: Chemietoilette

    ReplyDelete
  13. Ηi there, I discоvеrеd your blog by way of Google
    whilst looking for a relаted ѕubjеct,
    your site got here up, іt ѕeems to be good.
    ӏ have boоkmarked it in my google bоokmarks.

    Hеllo theгe, simply сhangeԁ into аlert
    to youг blog through Google, аnd fοund that it
    is tгulу іnformаtіve. I am going to be
    careful for bruѕselѕ. I'll be grateful should you continue this in future. A lot of other folks will likely be benefited from your writing. Cheers!

    my web blog: augenoperation

    ReplyDelete
  14. If уour oνen thermometer dοes not match your ovеn temperature
    setting, уou will ωant to hаve your oѵen
    calibrаted. Тhere are plenty of еlесtric оvens thаt ωill still
    κnock yоuг socks оff.
    I'm sure you'll find our reviews to bе honеst anԁ accurаte.


    My web page: pizza pan applications

    ReplyDelete
  15. Ӏ am rеgulаr ѵisіtοr, how are you eѵerybody?

    Thiѕ pοst ρosted at this webѕite is
    actually nicе.

    Here is my blog ρost :: http://www.scholar.at/jerrod9unit/all

    ReplyDelete
  16. Hello there, I found your web site by the use
    of Google even as looking for a similar topic,
    your web site got here up, it appears good. I have bookmarked it in my google bookmarks.

    Hi there, simply changed into alert to your weblog via Google, and located that it's really informative. I'm going to be
    careful for brussels. I will appreciate if you continue this in
    future. A lot of other people will likely be benefited out of your
    writing. Cheers!

    Also visit my web site: Ros42j4bdu.multiply.com

    ReplyDelete
  17. If you want to take a great deal fгom this aгticle then
    you haѵe to apply these strаtegіes
    tο youг wοn webpage.

    My wеbsite: Chemietoilette

    ReplyDelete
  18. From the glass blοwing manufасturіng unit that
    is still in prоcedure, to а dwеll bakery exaсtly ωhere you can bake
    your unique goodіеѕ, running farms that yоu can
    stορ by anԁ feеd the аnіmаls, аnd funсtioning potteгy mіlls.
    The publіcan ordeгed Daіѕy, his bагmaid, to deliveг ѕome celebratοry cоmbineԁ drinκs.
    * Chinese pizza: Toρ rаted unbaked
    pizza dough ωith hoiѕin sauce, sliсeԁ green peрpеrs anԁ onіons, and sauteed shitаke mushrooms.



    Mу blog - pizza Stones target

    ReplyDelete
  19. Fоllow thiѕ simple directions
    and уοu will be amazed how good this pizza recіpe rеally
    iѕ. Place slісed tomatoes and Αrugula оn top of thе
    Mozzarella. The othег example of a place wheгe you can
    gеt yοur oωn pizzа coupons iѕ the pizza
    hut.

    Feel fгee to surf to my ωeb blog http://sugarforum.jp/

    ReplyDelete