栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1098 Simple Computers

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1098 Simple Computers

#include <stdio.h>#include <string.h>unsigned char memory[32];unsigned char pc;unsigned char accu;char line[9];unsigned char ParseFromLine(char* s) {     unsigned char result = 0;     int base = 128;     while(*s)     {         result += (*s-'0')*base;         base = (base>>1);         s++;     }     return result; }void ParseToLine(unsigned char number, char* buf) {     int i=7;     memset(buf, '0', 8);     buf[8]=0;     while(number)     {         buf[i--] = (number % 2 ) + '0';         number = (number>>1);     } }unsigned char Run() {     unsigned char instruction, pre, addr;     pc=0;     accu=0;         while(1)     {         instruction = memory[pc++];         if(pc>=32) pc=0;         pre = (instruction >> 5);         addr = (instruction & 0x1f);         switch(pre)         {  case 0:      memory[addr] = accu;      break;  case 1:      accu = memory[addr];      break;  case 2:      if(accu == 0) pc=addr;      break;  case 3:      break;  case 4:      accu--;      break;  case 5:      accu++;      break;  case 6:      pc=addr;      break;  case 7:      return accu;      break;         }     }     return accu; }int main() {     int i=0;     unsigned char result;     while(scanf("%s",line)!=EOF)     {         memory[0]=ParseFromLine(line);         for(i=1;i<32;i++)         {  scanf("%s",line);  memory[i]=ParseFromLine(line);         }         result = Run();         ParseToLine(result, line);         printf("%sn", line);     }     return 0; }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号