poj 1049 Microprocessor Simul...

poj 1049 Microprocessor Simul...,第1张

poj 1049 Microprocessor Simul...
#include<cstdio>#include<cstring>#include<algorithm>#include<cctype>using namespace std;char s[300];int pos;char A,B;char D_H(int x){    if(x<10)        return x+'0';    else        return x-10+'A';}int H_D(char x){    if(isdigit(x))        return x-'0';    else        return x-'A'+10;}void LD(){    int w=H_D(s[++pos]);    w=w*16+H_D(s[++pos]);    pos++;    A=s[w];}void ST(){    int w=H_D(s[++pos]);    w=w*16+H_D(s[++pos]);    pos++;    s[w]=A;}void SWP(){    pos++;    swap(A,B);}void ADD(){    pos++;    int a,b,c;    a=H_D(A);    b=H_D(B);    c=a+b;    A=D_H(c%16);    B=D_H(c/16);}void INC(){    pos++;    A=D_H((H_D(A)+1)%16);}void DEC(){    pos++;    A=D_H((H_D(A)+15)%16);}void BR();void BZ(){    if(A!='0')        pos+=3;    else    {        int w=H_D(s[++pos]);        w=w*16+H_D(s[++pos]);        pos=w;    }}void BR(){    int w=H_D(s[++pos]);    w=w*16+H_D(s[++pos]);    pos=w;}int main(){    while(gets(s),s[0]!='8')    {        pos=0;        A=B='0';        while(s[pos]!='8'&&pos<256)        { switch(s[pos]) {     case '0':LD();break;     case '1':ST();break;     case '2':SWP();break;     case '3':ADD();break;     case '4':INC();break;     case '5':DEC();break;     case '6':BZ();break;     case '7':BR();break; }        }        puts(s);    }    return 0;}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4894535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存