153 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			153 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[] = "$Header$" ;
 | |
| 
 | |
| 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);
 | |
| }
 |