Skip to content

Instantly share code, notes, and snippets.

@gatherKnowledge
Created October 13, 2017 00:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gatherKnowledge/22c26b3a9811ffa6affab4a22e796581 to your computer and use it in GitHub Desktop.
Save gatherKnowledge/22c26b3a9811ffa6affab4a22e796581 to your computer and use it in GitHub Desktop.
Casting show
void downCasting(){
short before1 ;
int after1 ;
short before2 ;
int after2 ;
before1 = 1 ;
printf("before1 : %8x \n", before1) ;
after1 = before1 ;
printf("after1 : %8x \n", after1) ;
before2 = -1 ;
printf("before2 : %8x \n", before2) ;
after2 = before2 ;
printf("after2 : %8x \n", after2) ;
return ;
}
void upCasting(){
short after1;
int before1 ;
short after2 ;
int before2 ;
before1 = 0x7FFFFFFF ; // 2147483647
// prinft %8x makes before1 to integer type
printf("before1 : >%x \n", before1) ;
after1 = before1 ;
printf("after1 : >%x \n", after1) ;
before2 = 0x80000000 ; //-2147483648
printf("before2 : >%x \n", before2) ;
after2 = before2 ;
printf("after2 : >%x \n", after2) ;
return ;
}
// check upcasting available
void upCastCheck(){
unsigned int before_value ;
unsigned short tobe_value ;
//C doesn't have operator(^)
if (( before_value >= (2^(sizeof(tobe_value)*8)-1))){
printf("ERROR") ;
}
else{
tobe_value = (unsigned short)before_value ;
}
}
//
void saturation()
{
short after ;
int before ;
before = 4000000 ;
// before = 256 ;
if ( before >= 32768 ){
after = 32767 ;
}else if( before < -32768 ){
after = -32768 ;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment