/***********************************************/
/* 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;
}