利用词法分析的有关知识,设计算法实现对C语言中八、十、十六进制整数的识别。
【基本要求】1、输入待识别的符号串。
2、运行识别程序将输入串中的整数识别出来。
3、输出所识别出的整数,输出形式为二元组(进制,整数),如八进制数的输出形式是(OCT,值),十进制数的输出形式是(DEC,值),十六进制数的输出形式是(HEX,值)。
2025/3/2 21:12:30 582B 编译原理 词法分析
1
1、大数相乘。
要求实现两个十进制大整数的相乘,输出乘法运算的结果。
定义两个大单元,MUL乘法2、C语言编写多重循环程序,查看其反汇编码,分析各条语句功能,并采用汇编语言编写相同功能程序。
反汇编在WinDbg考虑两重循环3、结合Windows界面编程,实现计算器功能。
可以调用Windows的计算器4、实现内存与外存或者内存之间的大数据块复制,尽可能对代码进行性能优化,显示执行时间,并可通过WinDbg等查看执行结果。
执行前后时间5、C库函数底层分析与实现(printf\scanf\strcpy……),分析C库函数的底层实现细节,用汇编语言实现相同功能的简单C库函数。
分析printf6、通过查阅资料,采用汇编实现随机数算法。
随机数7、实现两个文本文件内容的比对。
若两文件内容一样,输出相应提示;
若两文件不一样,输出对应的行号。
详细请参考具体代码
2025/2/24 21:17:35 515KB 大数相乘
1
实验内容与要求1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行3、以角度、弧度两种方式实现上述部分函数4、具备历史计算的记忆功能
2025/1/21 21:06:38 1.07MB VC 报告 源码 计算器
1
WHUT-逻辑与计算机设计第四个任务书(第6次课)(vivado实现)1. 掌握二进制和十进制计数器的设计与实现;
2. 掌握二进制和十进制计数器的集成;
3. 掌握七段数码管的显示和使用。
2025/1/19 15:18:33 937KB WHUT-逻辑与计算机设计
1
浮点型与十六进制转换,十六进制与十进制转换,字符串与十六进制字符串转换。
2025/1/17 5:44:44 416KB 十六进制转换 十进制转换
1
能设初始值,能实现加1,加2操作,并能在数码管上显示
2025/1/6 18:56:20 294KB verilog
1
实验内容:从键盘输入一行字符,以‘$’结束,查找输入的字符串是否包含‘computer’字符串,如果包含,计算包含’computer’字符串的个数,并以十进制输出个数。
原理:输入一个字符串到定义好的空间string中,以’$’结束,同时获得字符的个数;
将computer单词放在keyword里,以computer的个数作为内循环的次数(8次),循环比较,相同则计数器加1,否则不加,string的指针后移一位,keyword指针清零,继续比较,直到遇到规定的符号,结束操作。
2024/12/25 9:46:31 9KB 汇编语言
1
#include#include#include#includeusingnamespacestd;intw=0;//尾数累加器intp=0;//指数累加器intj=0;//十进制小数位数计数器inte=1;//用来记录十进制数的符号,当指数为正时为1,为负时为-1inti=0;//用来标志元素位置intd=0;//用来表示每个数值型元素对应的数值constintN=40;//用来确定输入识别符的最大长度chardata[N];//存放输入的识别符boolis_digit;//标志是否是数字stringCJ1;//确定是整形还是实型doubleCJ2;//记数值//函数声明voidcheck(charc);//检查首字母是否是数字的函数voiddeal_integer(charc);//处理识别符的整数部分voiddeal_point(charc);//用来处理小数部分voiddeal_index(charc);//用来处理指数部分voids_next();//确定实型voidz_next();//确定整型voidlast();//计算CJ2voiderror();//程序中错误处理程序voiddeal();//处理函数主体intmain(){//主函数coutdata;deal();//处理函数主体last();//计算CJ2system("pause");return0;}voidcheck(charc)//判断输入的首字母是否是数字{is_digit=isdigit(c);while(is_digit!=true){//输入的首字母不是数字时coutdata;check(data[0]);}}voiddeal_integer(charc){//处理识别符的整数部分d=(int)c-48;w=w*10+d;i++;if(isdigit(data[i])!=0)//下一个仍是数值时,调用程序本身deal_integer(data[i]);}voiddeal_point(charc){//用来处理小数部分inttemp=i;if(isdigit(c)!=0)//是数值字符时deal_integer(c);else{error();//错误处理程序deal();//处理函数主体}j=i-temp;//记录十进制小数位数}voiddeal_index(charc){//用来处理指数部分if(c=='-'){e=-1;i++;}//是'-'号时else{if(c=='+')i++;//是'+'号时else{if(isdigit(c)==false)//非数值字符时{error();//错误处理程序deal();//处理函数主体}else
2024/12/19 11:09:24 33KB 无符号数的词法分析程序
1
十进制,十六进制数相互转换(含小数),整数,小数都可达15位
2024/12/13 3:14:58 1.24MB 数制转换
1
系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境VisualC++,并在此环境下设计并实现一个简单计算器系统,该计算器应能实现如下功能:1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运算3、以角度、弧度两种方式实现上述部分函数4、具备历史计算的记忆功能5、对不正确的表达式能指出其错误原因
2024/12/5 1:18:01 2.17MB 可视化 计算器 有报告
1
共 131 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡