Code:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<dos.h>
// #include<object.h>
const char *hex = "0123456789ABCDEF";
char *bin2hex(char *string);
int binstring2number(char *string);
char *number2hexstring(int nr);
char *hex2bin(char *string);
int hexstring2number(char *string);
char *number2binstring(int nr);
void main(void)
{
int x,y,z,i;
char temp_string[80];
clrscr();
//while(!kbhit())
// {
x=inport(0x37A);
y=x|0x20;
outportb(0x37A,y);
z=inportb(0x378);
// printf("%x",z);
temp_string[80]=z;
//delay(200);
printf("\n");
// }
printf("The value in the port is");
printf("%sb\n", hex2bin(temp_string));
//while(!kbhit());
getch();
}
char *bin2hex(char *string)
{
int nr = 0;
char *hexstring;
nr = binstring2number(string);
hexstring = number2hexstring(nr);
return hexstring;
}
int binstring2number(char *string)
{
int temp_nr = 0, i;
int len;
len = strlen(string);
for(i = 0;i != len;i++)
temp_nr |= (string[i] - '0') << (len - i - 1);
return temp_nr;
}
char *number2hexstring(int nr)
{
// char *temp = new char[10];
char *temp[10];
//temp=char[10];
int i;
for(i = 0;i < 4;i++)
temp[i] = hex[(nr >> ((3 - i) * 4)) & 15];
temp[i] = '\0';
return temp;
}
char *hex2bin(char *string)
{
int nr = 0;
char *binstring;
nr = hexstring2number(string);
binstring = number2binstring(nr);
return binstring;
}
int hexstring2number(char *string)
{
int temp_nr = 0, i, j;
int len;
if((len = strlen(string)) > 4)
len = 4;
for(i = 0;i < len;i++)
{
for(j = 0;j != 16;j++)
if(string[i] == hex[j])
temp_nr |= (j << ((len - i - 1) * 4));
}
return temp_nr;
}
char *number2binstring(int nr)
{
//char *temp = new char[20];
char *temp[10];
int i;
for(i = 0;i != 16;i++)
temp[15-i] = ((nr >> i) & 1) + 48;
temp[i] = '\0';
for(i = 0;i != 15;i++)
if(temp[i] == '1')
break;
temp +=i;
return temp;
}
while debugging i got error like Lvalue Required....
plse suggest a solution..
~added code tags
-stang02gt
Comment