/*  bpat.c    CCMATH mathematics library source code.
 *
 *  Copyright (C)  2000   Daniel A. Atkinson    All rights reserved.
 *  This code may be redistributed under the terms of the GNU library
 *  public license (LGPL). ( See the lgpl.license file for details.)
 * ------------------------------------------------------------------------
 */
/*  Version for ieee format and DOS byte order */
void bitpc(unsigned char x)
{ unsigned char t; int j,m;
  m=sizeof(char)<<3; t=1<<(m-1);
  for(j=0; j<m ;++j,t>>=1){
    if(x&t) printf("1"); else printf("0");}
  printf("\n");
}

void bitps(unsigned short x)
{ unsigned short t; int j,m;
  m=sizeof(short)<<3; t=1<<(m-1);
  for(j=0; j<m ;++j,t>>=1){
    if(x&t) printf("1"); else printf("0");}
  printf("\n");
}

void bitpl(unsigned int x)
{ unsigned int t; int j,m;
  m=sizeof(int)<<3; t=1L<<(m-1);
  for(j=0; j<m ;++j,t>>=1){
    if(x&t) printf("1"); else printf("0");}
  printf("\n");
}

void bitpf(float x)
{ unsigned char t,u,*p; int j,m;
  m=sizeof(float); t=u=0x80;
  p=(unsigned char *)&x;
  p+=m-1; m<<=3;
  for(j=0; j<m ;++j){
	if(*p&t) printf("1"); else printf("0");
	if(j==8) printf("^");
	if((t>>=1)==0){ t=u; --p;}
   }
  printf("\n");
}

void bitpd(double x)
{ unsigned char t,u,*p; int j,m;
  m=sizeof(double); t=u=0x80;
  p=(unsigned char *)&x;
  p+=m-1; m<<=3;
  for(j=0; j<m ;++j){
    if(*p&t) printf("1"); else printf("0");
    if(j==11) printf("^");
    if((t>>=1)==0){ t=u; --p;}
   }
  printf("\n");
}


syntax highlighted by Code2HTML, v. 0.9.1