/***********************************************/
       /*    BINARY TO HEXADECIMAL CONVERTER          */
       /*   Source code written by: A. Yavuz Oruç     */  
       /*       E-mail: yavuz@eng.umd.edu             */                
       /*          Last revised:  October 1998        */
       /*  Input:  16-bit binary number               */  
       /*  Output: 4-digit hexadecimal number         */      
       /*                                             */
       /***********************************************/


#include <iostream.h>
#include <stdio.h> 
#include <limits.h> 

long power(long x, short y);
void main(void)
{unsigned long u,l,r; short i;  
  while(true)
  {
  //AYO: Here read a 16-bit binary number.
  printf("\nEnter higher byte of your number in binary: ");
  scanf("%08X", &u);
  printf("\nEnter  lower byte of your number in binary: ");
  scanf("%08X", &l); 
  printf("\nYou entered: "); 
  printf(" "); printf("%08X",u); printf("%08X",l); printf("\n");
  r = 0;
  //AYO: The for loop treats the hex digits in (u,l) 
  //as binary numbers to convert it
  //to a hex number.
  for (i = 0; i<= 7; i++)
  {r =  r  + power(2,i) * ((l >> (4 *i)) % 2)  + 
        power(2,8 + i)  * ((u >> (4 *i)) % 2);
   }
  printf("\nHexadecimal  representation of your binary number is: "); 
  printf("%04X",r);  printf("\n");  
}
} 

//AYO: power(x,y)  returns x^^y for y >= 0, and returns 1 if y < 0.
long power(long  x, short y)
{long r = 1; short i;
for(i = 1; i <= y; i++) r *=  x; 
return r; 
}

Return to my home page

Return to software page