#include<conio.h>
#include<stdio.h>
#include"ApiExUsb.h"
#include<queue>
using namespace std;
#pragma comment(lib,"ApiExUsb.lib")
const int port_a=0x288;
const int port_b=0x289;
const int port_c=0x28a;
const int port_con=0x28b;
const int maxn=100005;
char input[maxn];
char Outp[maxn];
int outpos=0;
int now=0;
char xls[14]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/'};
int data1[16]={0};
int mp[25];
int data2[16]={0};
queue<int> num;
queue<char> ops;
void display();
char _Read(int x);
void _Output();
void Clear();
void cmdsetup();
void getres();
int setint(char x);
int prior[4][4]={
{1,1,0,0},
{1,1,0,0},
{1,1,1,1},
{1,1,1,1}
};
int Getmp(char x)
{
if(x<='9'&&x>='0')
return (int)(x-'0');
if(x=='+')return 10;
else if(x=='-') return 11;
else if(x=='*') return 12;
else if(x=='/') return 13;
else if(x=='e') return 14;
else if(x=='r') return 15;
else if(x=='o') return 16;
}
void resetdata()
{
for(int i=0;i<16;i++)
{
data1[i]=0xa1;
data2[i]=0xa1;
}
return;
}
void Error_res()
{
strcpy(Outp,"error");
outpos=5;
}
#初始化
void init()
{
#mp为0~9,+-*/,=的二进制
for(int i=0;i<10;i++)
{
mp[i]=0xa3b0+i;
}
mp[10]=0xa3ab;
mp[11]=0xa3ad;
mp[12]=0xa1c1;
mp[13]=0xa1c2;
mp[14]=0xa3c5;
mp[15]=0xa3d2;
mp[16]=0xa3cf;
resetdata();
}
char _Read(int x) //读取函数
{
char tmp;
tmp=xls[x];
return tmp;
}
void _Output() //显示函数
{
int i=0;
if(now<8)
{
i=0;
for(i;i<now;i++)
{
int tmp=mp[Getmp(input[i])];
data1[2*i]=tmp/256;
data1[2*i+1]=tmp%256;
//printf("%d %d",data1[2*i],data1[2*i+1]);
}
//puts("");
}
else
{
i=0;
for(i;i<8;i++)
{
int tmp=mp[Getmp(input[i+now-8])];
data1[2*i]=tmp/256;
data1[2*i+1]=tmp%256;
//printf("%d %d",data1[2*i],data1[2*i+1]);
}
//puts("");
}
if(outpos<=8)
{
i=8-outpos;
for(i;i<8;i++)
{
int tmp=mp[Getmp(Outp[i-(8-outpos)])];
data2[2*i]=tmp/256;
data2[i*2+1]=tmp%256;
//printf("%d %d",data2[2*i],data2[2*i+1]);
}
//puts("");
}
/*for(i=0;i<16;i++)
{
printf("%d ",data1[i]);
}
puts("");
for(i=0;i<16;i++)
{
printf("%d ",data2[i]);
}
puts("");*/
display();
}
bool isdigit(char x) //是数字否
{
if(x>='0'&&x<='9')
return true;
return false;
}
void getres(int t)
{
bool f=false;
if(t<0) {f=true; t=-t;}
while(t)
{
Outp[outpos++]=t%10+'0';
t/=10;
}
if(f) Outp[outpos++]='-';
reverse(Outp,Outp+outpos);
Outp[outpos]='
近期评论