(1)按照实验要求设计简单ALU,能执行8种操作,分别为:1)加、减、增1、减1等4种8位算术运算;
2)与、或、非、异或等4种8位逻辑运算。
实现上,可以用一位M作为进行算术运算或逻辑运算的控制位,M=0时进行算术运算,M=1时进行逻辑运算。
另外用2位来表示4种操作。
(2)实现一些基本的PSW标志位:1)进位/借位的输出标志位C;
2)运算结果为零的输出标志位Z;
3)运算结果为溢出的输出标志位V;
4)运算结果为负数的输出标志位N。
(3)加减必须用最基本的1位全加器fa作为基础,可以采用直接由8次1位运算得到8位的操作;
也可以先构造4位加法器,再进一步实现8位加减运算。
注意:算术运算的两个操作数要求都是带符号数,即1位符号位和7位数据位。
2025/5/24 16:20:41 26KB ALU VHDL语言
1
高精度运算高精度加法高精度减法高精度乘法(一个多精度乘一个整数)高精度乘法2(一个多精度乘以一个多精度)高精度整除(一个多精度整除一个整数)高精度整除(一个多精度整除一个多精度)高精度取余(一个多精度取余一个整数)高精度乘方高精度开方
2025/4/8 5:43:31 11KB 高精度
1
C#实现的数值编辑框控件TNumEditBox(V1.3),具有功能:1)设置ReadOnly时的背景颜色;
2)定义小数位长;
3)允许非负数;
4)支持Ctrl+V/Ctrl+C/Ctrl+X等快捷键操作;
5)支持鼠标上下文菜单操作(Paste/Copy/Cut)。
有关控件的说明请参见拙文:http://www.codeproject.com/KB/edit/TNumEditBox.aspx。
或者:http://blog.csdn.net/hulihui/archive/2008/09/17/2940491.aspx
2025/1/12 21:18:16 72KB C# Numeric Edit TextBox
1
用算法程序集(C语言描述)(第五版)+源代码第1章多项式的计算1.1一维多项式求值1.2一维多项式多组求值1.3二维多项式求值1.4复系数多项式求值1.5多项式相乘1.6复系数多项式相乘1.7多项式相除1.8复系数多项式相除第2章复数运算2.1复数乘法2.2负数除法2.3复数乘幂2.4复数的n次方根2.5复数指数2.6复数对数2.7复数正弦2.8复数余弦第3章随机数的产生3.1产生0到1之间均匀分布的一个随机数3.2产生0到1之间均匀分布的随机数序列3.3产生任意区间内均匀分布的一个随机整数3.4产生任意区间内均匀分布的随机整数序列3.5产生任意均值与方差的正态分布的一个随机数3.6产生任意均值与方差的正态分布的随机数序列第4章矩阵运算4.1实矩阵相乘4.2复矩阵相乘4.3一般实矩阵求逆4.4一般复矩阵求逆4.5对称正定矩阵的求逆4.6托伯利兹矩阵求逆的特兰持方法4.7求一般行列式的值4.8求矩阵的值4.9对称正定矩阵的乔里斯基分解与列式求值4.10矩阵的三角分解4.11一般实矩阵的QR分解4.12一般实矩阵的奇异值分解4.13求广义逆的奇异值分解法第5章矩阵特征值与特征向量的计算5.1约化对称矩阵为对称三对角阵的豪斯荷尔德变换法5.2求对称三对角阵的全部特征值与特征向量5.3约化一般实矩阵为赫申伯格矩阵的初等相似变换法5.4求赫身伯格矩阵全部特征的QR方法5.5求实对称矩阵特征值与特征向量的雅可比法5.6求实对称矩阵特征值与特征向量的雅可比过关法第6章线性代数方程组的求解6.1求解实系数方程组的全选主元高斯消去法6.2求解实系数方程组的全选主元高斯-约当消去法6.3求解复系数方程组的全选主元高斯消去法6.4求解复系数方程组的全选主元高斯-约当消去法6.5求解三对角线方程组的追赶法6.6求解一般带型方程组6.7求解对称方程组的分解法6.8求解对称正定方程组的平方根法6.9求解大型系数方程组6.10求解托伯利兹方程组的列文逊方法6.11高斯-塞德尔失代法6.12求解对称正定方程组的共岿梯度法6.13求解线性最小二乘文体的豪斯伯尔德变换法6.14求解线性最小二乘问题的广义逆法6.15求解病态方程组第7章非线性方程与方程组的求解7.1求非线性方程一个实根的对分法7.2求非线性方程一个实根的牛顿法7.3求非线性方程一个实根的埃特金矢代法7.4求非线性方程一个实根的连分法7.5求实系数代数方程全部的QR方法7.6求实系数方程全部的牛顿下山法7.7求复系数方程的全部根牛顿下山法7.8求非线性方程组一组实根的梯度法7.9求非线性方程组一组实根的拟牛顿法7.10求非线性方程组最小二乘解的广义逆法7.11求非线性方程一个实根的蒙特卡洛法7.12求实函数或复函数方程一个复根的蒙特卡洛法7.13求非线性方程组一组实根的蒙特卡洛法第8章插值与逼近8.1一元全区间插值8.2一元三点插值8.3连分式插值8.4埃尔米特插值8.5特金逐步插值8.6光滑插值8.7第一种边界条件的三次样条函数插值8.8第二种边界条件的三次样条函数插值8.9第三种边界条件的三次样条函数插值8.10二元三点插值8.11二元全区间插值8.12最小二乘曲线拟合8.13切比雪夫曲线拟合8.14最佳一致逼近的里米兹方法8.15矩形域的最小二乘曲线拟合第9章数值积分9.1变补长梯形求积法9.2变步长辛卜生求积法9.3自适应梯形求积法9.4龙贝格求积法9.5计算一维积分的连分式法9.6高振荡函数求积法9.7勒让德-高斯求积法9.8拉盖尔-高斯求积法9.9埃尔米特-高斯求积法9.10切比雪夫求积法9.11计算一维积分的蒙特卡洛法9.12变步长辛卜生二重积分方法9.13计算多重积分的高斯方法9.14计算二重积分的连分方式9.15计算多重积分的蒙特卡洛法第10章常微分方程组的求解10.1全区间积分的定步长欧拉方法10.2积分一步的变步长欧拉方法10.3全区间积分维梯方法10.4全区间积分的定步长龙格-库塔方法10.5积分一步的变步长龙格-库塔方法10.6积分一步的变步长基尔方法10.7全区间积分的变步长默森方法10.8积分一步的连分方式10.9全区间积分的双边法10.10全区间积分的阿当姆斯预报校正法10.11全区间积分的哈
2025/1/9 6:30:24 156.11MB 常用算法程序集 C语言 C++ 第五版
1
利用栈实现算术表达式的求值,表达式中可包含加+、减(负)-、乘*、除/、乘方^、括号()运算符,操作数可以为浮点数。
可采用直接求中缀表达式的方法,也可采用先转换成后缀表达式后再求值的方法(参看课件)。
实现时需注意如下:(1)带小数点的数值生成(理解整数数值的生成,小数部分的处理与之类似)。
(2)考虑负号的情况。
负号与减号形式上一样,如何区分?•输入的表达式串中第1个字符是’-’–可断定此’-’是负号•其余的’-’–若紧接在’(’之后的’-’可断定是负号(3)负号的处理•方法1:若已断定是负号,可先压入数值0进入操作数栈,如此,可将负号看作减号。
•方法2:若已断定是负号,则紧接其后的数字字符转换成数值后,要将其对应的相反数(负数)压入操作数栈
2025/1/4 1:25:36 3KB 表示求值
1
串口数据波形显示助手,支持两条波形的显示,为单片机爱好者开发更新说明:增加至可现实4条曲线,可以显示负数的曲线,PC上使用虚拟串口10ms速度测试无问题
2024/12/22 6:07:17 125KB 串口 波形显示 单片机
1
数据结构课程设计,实现加减乘除,负数,平方,开方,括号等操作的计算器,支持小数。
2024/12/10 2:08:48 6KB 数据结构课程设计 堆栈
1
对即将找工作的大学生,研究生都爱刷leetcode的题目,但是刚刚接受无法适从,或是一时半会儿想不到解法,没关系,leetcode题解PDF可一带你慢慢了解思路过程。
目录3.4Addbinary615.1.5BinaryTreeLevelOr-3.5LongestPalindromicSubstring.62dertraversalil3.6RegularExpressionMatching665.1.6BinaryTreeZigzag3.7WildcardMatching67LevelOrdertraversal.963.8LongestCommonPrefix5.1.7RecoverBinarySearch3.9ValidNumber70Tree983.10Integertoroman725.1.8SameTree3.11RomantoInteger5.1.9SymmetricTree1013.12CountandSay745.1.10BalancedBinaryTree..1023.13Anagrams755.1.11FlattenBinaryTreeto3.14SimplifyPath76LinkedList1033.15LengthofLastWord775.1.12PopulatingNextRightPointersineachnodeii105第4章栈和队列7952二叉树的构建1074.1栈795.2.1ConstructBinaryTree4ValidParentheses79fromPreorderandIn4.1.2LongestvalidParenorderTraversatheses805.2.2ConstructBinaryTree4.1.3LargestRectangleinfromInorderandposHistogram82torderTraversal1084.14Evaluatereversepol-53二叉查找树109ishnotation845.3.1UniqueBinarySearch4,2队列85Trees5.3.2UniqueBinarySearch第5章树86Treesli.1105.1二叉树的遍历865.3.3ValidateBinarySearch5.1.1BinaryTreePreorderTreeTraversal865.3.4ConvertSortedarrayto5.1.2BinaryTreeInorderBinarySearchTreel12Traversal885.3.5ConvertSortedListto5.1.3BinaryTreePostorderBinarysearchtree113Traversal9054二叉树的递归1155.1.4BinaryTreeLevelOr5.4.1MinimumDepthofBidertraversalnarylree115目录5.4.2MaximumDepthofBi8.32重新实现nextpermunaryTree116tation1425.4.3PathSum117833递归.1435.44PathSumil1188.4PermutationsII1445.4.5BinaryTreeMaximum8.4.1nextpermutation...144PathSuum119842重新实现nextpermu5.4.6PopulatingNextRighttation144Pointersineachnode12084.3递归1445.4.7SumRoottoLeafNum8.5Combinations146bers122851递归146852迭代147第6章排序1238.6LetterCombinationsofaphone6.1MergeSortedArray123umber1476.2MergeTwoSortedLists12486.1递归1486.3MergekSortedLists124862迭代96.4InsertionSortList125第9章广度优先搜索1506.5Sortlist1269.1WordLadder1506.6FirstMissingPositive1279.2WordLadderil..1526.7SortColors289.3Surroundedregions154第7章查找94小结15613194.1适用场景1567.1Searchforarange131942思考的步骤.1567.2SearchInsertPosition.13294.3代码模板1577.3Searcha2DMatrix133第10章深度优先搜索162第8章暴力枚举法13510.1PalindromePartitioning..1628.1Subsets13510.2UniquePaths1658.1.1递归1350.2.1深搜1658.1.2迭代.13710.22备忘录法.1658.2Subsetsil13810.23动规166821递归1381024数学公式167822迭代.14110.3UniquePathsIl1688.3Permutations14210.3.1备忘录法1688.3.1nextpermutation14210.3.2动规.169目录10.4N-Queens16913.4Maximalrectangle19910.5N-QueensII17213.5BestTimetoBuyandSellStock10.6Restoreipaddresses17320010.7CombinationSum17413.6InterleavingString20110.8CombinationSumIl17513.7ScrambleString20310.9GenerateParentheses.17713.8MinimumPathSum20810.10Sudokusolver17813.9EditDistance21010.11WordSearch.18013.10DecodeWays.21210.12小结18113.11DistinctSubsequences21310.12.1适用场景1813.12WordBreak21410.122思考的步骤1811313WordBreakil21610.12.3代码模板183第14章图21810.12.4深拽与回溯法的区别.18414.1CloneGraph10.12.5深搜与递归的区别..184第15章细节实现题221第11章分治法18515.1ReverseInteger2211.1Pow(x,n)18515.2PalindromeNumber222qrt(x18615.3InsertInterval223第12章贪心法18715.4MergeIntervals22412.1Jumpgame18715.5MinimumWindowSubstring..22512.2JumpgameIl18815.6MultiplyStrings22712.3BestTimetobuyandsellstock19015.7SubstringwithConcatenation12.4BestTimetobuyandsellstock191ofallwords23012.5LongestSubstringWithoutre15.8Pascal,sTrianglepeatingCharacters19215.9PascalsTriangleIl23212.6ContainerwithmostWater.19315.10Spiralmatrix23315.11SpiralmatrixII234第13章动态规划19515.12ZigZagConversion23613.1Triangle19515.13DivideTwoIntegers23713.2MaximumSubarray19615.14TextJustification23813.3PalindromePartitioningII19815.15MaxPointsonaline目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a=-b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。
判断一个整数是否是为奇数,用x%2!=0,不要用x%2==1,因为x可能是负数用char的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到char可能是负数。
有的人考虑到了,先强制转型为unsignedint再用作下标,这仍然是错的。
正确的做法是,先强制转型为unsignedchar,再用作下标。
这涉及C++整型提升的规则,就不详述了。
以下是关于STL使用技巧的,很多条款来自《EffectiⅤveStL》这本书。
vector和string优先于动态分配的数组首先,在性能上,由于vector能够保证连续内存,因此一旦分配了后,它的性能跟原始数组相当其次,如果用new,意味着你要确保后面进行了delete,一旦忘记了,就会岀现BUG,且这样需要都写一行delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如:int**ary=newint*[row_num];for(inti=0:i<rownum;++1)ary[i]newint[col_num]用vector的话一行代码搞定,vector<vector<int>>ary(row_num,vector<int>(col_num,0))使用reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。
21数组2.1.1RemoveDuplicatesfromSortedarray描述Givenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlengthDonotallocateextraspaceforanotherarray,youmustdothisinplacewithconstantmemoryForexample,GiveninputarrayA=[1,1,2Yourfunctionshouldreturnlength=2,andaisnow[1,2]分析无代码1/LeetCode,RemoveDuplicatesfromSortedArray/时间复杂度0(n),空间复杂度0(1)classSolutiontublicintremoveDuplicates(intA[],intn)tlf(n==oreturnointindex=0:for(inti=1:i<n:i++iif(Alindex!alidA[++index]=Alireturnindex12.1数组代码2//LeetCode,RemoveDuplicatesfromSortedArray//使用STL,时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(intA[,intn)treturndistance(A,unique(A,An))代码3/LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)lassSolutionfublicintremoveDuplicates(intA[],intn)treturnremoveDuplicates(A,A+n,A)-A;template<typenameInIt,typenameoutit>OutItremoveDuplicates(InItfirst,InItlast,OutItoutput)thile(firstlast)i*output++=*firstfirstupper_bound(first,last,*firstreturnoutput相关题目RemoveduplicatesfromSortedArrayIl,见§2.1.22.1.2RemoveDuplicatesfromSortedArrayII描述Followupfor"RemoveDuplicates"Whatifduplicatesareallowedatmosttwice?Forexample,Givensortedarraya=[1,1,1,2,2,3]Yourfunctionshouldreturnlength=5,andAisnow[1,1,2,2,3分析加一个变量记录一下元素出现的次数即可。
这题因为是已经排序的数组,所以一个变量即可解决。
如果是没有排序的数组,则需要引入一个hashmap来记录出现次数4第2章线性表代码1//LeetCode,RemoveDuplicatesfromSortedArrayII/时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)classSolutiontublicintremoveDuplicates(intA[],intn)tlf(n<=2returnnintindex=2for(inti=2:in:1++)if(all]!Alindex-2])ALindex++]=Ali]returnindex;代码2下面是一个更简洁的版本。
上面的代码略长,不过扩展性好一些,例如将occur<2改为ocur<3,就变成了允许重复最多3次。
//LeetCode,RemoveDuplicatesfromSortedArrayII//@author虞航仲(http://weibo.com/u/1666779725)//时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(intA[],intn)tmtindex=ofor(intif(i>0&&i<1&&A[i]==A[i-1]&&A[i]==A[i+1])continueAlindex++]=Alireturnindex;相关题目RemoveDuplicatesfromSortedArray,见§2.1.12.1.3SearchinRotatedSortedArray描述Supposeasortedarrayisrotatedatsomepivotunknowntoyoubeforehand
2024/12/7 0:08:16 1.03MB leetcode题解
1
七种排序算法(包括直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,简单选择排序,归并排序)还有两道题1./*设计并实现一个有效的对n个整数重排的算法,使得所有负数位于非负数之前,给出算法的性能分析*/2./*试给出一个同时找到n个元素中最大元素与最小元素的有效算法,并说明理由*/
1
运行环境:VS2015,没有环境可以把代码复制出来用支持小数,支持负数运算
2024/11/8 21:17:47 8.43MB 小数 负数 四则运算
1
共 47 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡