ack/lang/cem/ctest/ctconv/conv.c
1994-06-24 14:02:31 +00:00

154 lines
2.9 KiB
C

/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*
*/
/* Author: E.G. Keizer */
char rcs_id[] = "$Id$" ;
main() {
t1() ;
t2() ;
return 0 ;
}
t1() {
char c ; int i ; long l ; unsigned u ;
#ifndef NOFLOAT
float f ;
#endif
/* test conversions */
/* first some conversions on constants */
printf("(int) '\\377' = %d\n",(int) '\377') ;
printf("(long) -1 = %ld\n",(long) -1 ) ;
#ifndef NOFLOAT
printf("(float) 12 = %f\n",(float) 12 ) ;
printf("(int) 3.14 = %d\n",(int) 3.14 ) ;
#endif
printf("(int) 32767L = %d\n",(int) 32767L ) ;
printf("(int) -32768L = %d\n",(int) -32768L ) ;
printf("(char) 128L = %d\n",(char) 128L) ;
printf("(char) 0377 = %d\n",(char) 0377 ) ;
printf("(char) -1 = %d\n",(char) -1 ) ;
printf("(char) 10000 = %d\n",(char) 10000 ) ;
/* conversions from characters */
printf("From character\n") ;
c = 127 ;
i=c ;
l=c ;
u=c ;
#ifndef NOFLOAT
f=c ;
#endif
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld\n",c,i,u,l) ;
#ifndef NOFLOAT
printf("\t\t\t\t\tfloat %f\n",f) ;
#endif
c = -1 ;
i=c ;
l=c ;
u=c ;
#ifndef NOFLOAT
f=c ;
#endif
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld\n",c,i,u,l) ;
#ifndef NOFLOAT
printf("\t\t\t\t\tfloat %f\n",f) ;
#endif
c = 0377 ;
i=c ;
l=c ;
u=c ;
#ifndef NOFLOAT
f=c ;
#endif
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld\n",c,i,u,l) ;
#ifndef NOFLOAT
printf("\t\t\t\t\tfloat %f\n",f) ;
#endif
/* from integer */
printf("From integer\n") ;
i= -64 ;
c=i ;
l=i ;
u=i ;
#ifndef NOFLOAT
f=i ;
#endif
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld\n",c,i,u,l) ;
#ifndef NOFLOAT
printf("\t\t\t\t\tfloat %f\n",f) ;
#endif
/* from long */
printf("From long\n") ;
l = -3 ;
c = l ;
i = l ;
u = l ;
#ifndef NOFLOAT
f = l ;
#endif
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld\n",c,i,u,l) ;
#ifndef NOFLOAT
printf("\t\t\t\t\tfloat %f\n",f) ;
#endif
printf("Casts from long\n");
l = 75000;
printf("\tchar %5d, int %d, unsigned short %6o, long %11ld\n",
(char) l,(int) l,(unsigned short)l ,l) ;
#ifndef NOFLOAT
printf("From float\n") ;
f = 121.5 ;
c = f ;
i = f ;
u = f ;
l = f ;
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld, float %f\n",c,i,u,l,f) ;
f = 1e-4 ;
c = f ;
i = f ;
u = f ;
l = f ;
printf("\tchar %5d, int %6d, unsigned %6o, long %11ld, float %f\n",c,i,u,l,f) ;
f = 3276.6e1 ;
i = f ;
u = f ;
l = f ;
printf("\tint %6d, unsigned %6o, long %11ld, float %f\n",i,u,l,f) ;
f = 1223432e3 ;
l = f ;
printf("\tlong %11ld, float %f\n",l,f) ;
#endif
/* some special cases */
{
int a[4] ;
l = 3 ; a[3]= -17 ;
printf("a[l] (l==%ld) %d\n",l,a[l]) ;
printf("a[3l] %d\n",a[3l] ) ;
}
return 0 ;
}
t2()
{
long l1 = 0x1f010L;
long l2;
l2 = (unsigned short) l1;
printf("(unsigned short) 0x1f010L = 0x%lx\n", l2);
l2 = (short) l1;
printf("(short) 0x1f010L = 0x%lx\n", l2);
}