Write a program to illustrate the results of type conversion between signed and unsigned long and short integer data types.

C Programming Language Data Types in C Language (Article) Data Types in C Language (Program)

23357

Program:

<span class="com">/*
 Program:  Write a program to illustrate the results of type conversion between signed and unsigned long and short integer data types. 
  
 Author: www.atnyla.com  
 
*/</span><span class="pln"> 

</span><span class="com">#include</span><span class="pln"> </span><span class="str">"stdio.h"</span><span class="pln">  
</span><span class="kwd">int</span><span class="pln"> main</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="kwd">short</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> si</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">long</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> li</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">unsigned</span><span class="pln"> </span><span class="kwd">short</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> usi</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">unsigned</span><span class="pln"> </span><span class="kwd">long</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> uli</span><span class="pun">;</span><span class="pln">

si </span><span class="pun">=</span><span class="pln"> </span><span class="pun">-</span><span class="lit">10</span><span class="pun">;</span><span class="pln">
li </span><span class="pun">=</span><span class="pln"> si</span><span class="pun">;</span><span class="pln">                                  </span><span class="com">/* sign extension - li should be -10 */</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"si = %8hd li = %8ld\n"</span><span class="pun">,</span><span class="pln">si</span><span class="pun">,</span><span class="pln">li</span><span class="pun">);</span><span class="pln">

usi </span><span class="pun">=</span><span class="pln"> </span><span class="lit">40000U</span><span class="pun">;</span><span class="pln">                             </span><span class="com">/* usigned decimal constant */</span><span class="pln">
uli </span><span class="pun">=</span><span class="pln"> usi</span><span class="pun">;</span><span class="pln">                                </span><span class="com">/* zero extension - uli should be 40000 */</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"usi = %8hu uli = %8lu\n"</span><span class="pun">,</span><span class="pln">usi</span><span class="pun">,</span><span class="pln">uli</span><span class="pun">);</span><span class="pln">

uli </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0xabcdef12</span><span class="pun">;</span><span class="pln">                         </span><span class="com">/* sets most bits ! */</span><span class="pln">
usi </span><span class="pun">=</span><span class="pln"> uli</span><span class="pun">;</span><span class="pln">                                </span><span class="com">/* will truncate-discard more sigficant bits */</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"usi = %8hx uli = %8lx\n"</span><span class="pun">,</span><span class="pln">usi</span><span class="pun">,</span><span class="pln">uli</span><span class="pun">);</span><span class="pln">

si </span><span class="pun">=</span><span class="pln"> usi</span><span class="pun">;</span><span class="pln">                                 </span><span class="com">/* preserves bit pattern */</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"si = %8hd usi = %8hu\n"</span><span class="pun">,</span><span class="pln">si</span><span class="pun">,</span><span class="pln">usi</span><span class="pun">);</span><span class="pln">

si </span><span class="pun">=</span><span class="pln"> </span><span class="pun">-</span><span class="lit">10</span><span class="pun">;</span><span class="pln">
usi </span><span class="pun">=</span><span class="pln"> si</span><span class="pun">;</span><span class="pln">                                 </span><span class="com">/* preserves bit pattern */</span><span class="pln">
printf</span><span class="pun">(</span><span class="str">"si = %8hd usi = %8hu\n"</span><span class="pun">,</span><span class="pln">si</span><span class="pun">,</span><span class="pln">usi</span><span class="pun">);</span><span class="pln">

</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span>

Output:

si =      -10 li =      -10
usi =    40000 uli =    40000
usi =     ef12 uli = abcdef12
si =    -4334 usi =    61202
si =      -10 usi =    65526
Press any key to continue . . .

Explanation:

None

This Particular section is dedicated to Programs only. If you want learn more about C Programming Language. Then you can visit below links to get more depth on this subject.