2-2-1-1加法器
如何用门电路实现一位加法?Ai 被加数的本位Bi 加数的本位Ci-1 来自低位的进位Si 本位和Ci 向高位的进位 si = ai ^ bi ^ci-1ci 输入中至少2个1时输出1 aibi + (ai ^ bi)ci-1 aibi都为1 或者ai bi有一个为1 而且ci-1为1 那肯定ci为1这就是一位全加器呀 有点意思把n个一位全加器串接起来 就可以进行两个n bit数的相加进位信息是串行产生的 位数越多,运算速度越慢电信号到达稳态需要一定的时间,因此进位产生速度会有延迟 由于两个输入端允许并行输入n bit,因此这种加法器属于:并行加法器由于进位信息是串行产生的,因此从“进位方式”看,这种加法器属于 串行进位加法器串行进位的并行加法器 并行进位的并行加法器 CLA部件 同时产生每一个进位带标志位的加法器 有时候关心结果是否为零 还是溢出 还是正负zf 结果是否为0 1则为0 sn+sn-1+….+s1 仅当所有的结果都为0时of 带符号数加减运算是否溢出 1溢出 0 cn^cn-1 最...
2-1-4C语言中的强制类型转换
c语言中的定点整数使用“补码”存储的void main(){ short x = -4321; //short占用2个字节 无符号数和有符号数 不改变数据内容 改变解释方式 unsigned short y = (unsigned short)x; int a = 165537,b=-34991; //int型占用4个字节 长整数变短整数 a = 0x000286a1 c = 0x86a1 真值-31071 short c = (short)a, d = (short)b; 高位截断 保留低位 b = 0xffff7751 d = 0x7751 真值30545 short x = -4321; 短整数变长整数 x = 1110 1111 0001 1111 int m =x; ...
2-1-2+2-1-3定点数的编码表示
定点数:小数点固定的数浮点数:小数点不固定的数 定点数的表示:无符号数:表示范围n位的无符号数无符号整数 没有无符号小数 (意义不大,因为标准浮点数已经可以表示所有正小数)有符号数的定点表示: 定点整数: ps可用原码 反码 补码表示定点整数和定点小数 移码来表示定点整数 不表示定点小数数值部分叫尾数若机器字长n+1 原码表示整数的范围 -(2的n-1)到(2的n-1) 真值0有+0和-0两种 2的n+1个状态,但是实际上是2的n+1减一 两个状态都表示0定点小数:原码表示定点小数 -(1-2的-n) 到1-2的-n (怎么推) 反码只需要把符号位为1的数值位全部取反只是转化为补码的中间状态 并不是很重要 补码:+0 和 -0一样了 000000只有一种表示形式补1,0000000表示-2的7次方所以补码的范围会多一个 -2的n 到 2的n-11.0000000表示-1那定点小数呢 多表示一个-1 -1到1-2的-n 移码:就是在补码的基础上将符号位取反喔移码和补码的范围一一对应 本质上相当于所...
2-1-1进位计数制
10的几次方 位权基数:每个数码位所用到的不同符号的个数,r进制的基数是r 二进制:可以使用两个稳定状态的物理器件表示0,1正好对应逻辑值假真,方便实现逻辑运算可很方便的使用逻辑门电路实现算术运算 二进制转八进制1111000010.01101001 111 000 010. 011 0101 7 0 2 . 3 2二进制转十六进制0011 1100 0010.01101000 0x111十六进制h结尾 十六进制d结尾 十进制 十进制到二进制先除的是低位小数部分用乘法 真值:符合人类习惯的数值机器数:把正负号数字化的数
044前缀树原理和代码
没有路就新建节点:已经有路就复用节点 p值就是以他开头的有多少个e值就是这个字符串出现了几次 题目一 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687import java.util.HashSet;// 数组中两个数的最大异或值// 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0<=i<=j<=n// 1 <= nums.length <= 2 * 10^5// 0 <= nums[i] <= 2^31 - 1// 测试链接 : https://leetcode.cn/problems/maximum-xor-of-two-numbers-in-an-array/public class Code02_Tw...
1-3计算机的性能指标
存储器的性能指标总容量 = 存储单元个数存储字长 bit 1Byte = 8bit= 存储单元个数存储字长/8 Byte ex:MAR32位,MDR8位 总容量 2^32*8bit = 4GB CPU的性能指标CPU主频:CPU内数字脉冲信号振荡的频率主频(时钟频率)等于时钟周期分之一 单位一般是微秒 纳秒CPI:执行一条指令所需的时钟周期数 不同的指令,CPI不同。甚至相同的指令,CPI也可能发生变化。执行一条指令耗时 = CPI*CPU时钟周期 IPS每秒执行多少条指令 = 主频/CPI KIPS MIPSFLOPS每秒执行多少次浮点运算 KFLOPS MFLOPS GLOPS TFLOPS这里的K = 10^3 M = 10^6 G = 10^9 T = 10^12 系统整体的性能指标数据通路带宽:数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)吞吐量:系统在单位时间内处理请求的数量它取决于...
1-2-5计算机系统的工作原理
源程序hello.c 预处理器- 预处理后的源程序hello.i - 编译器 hello.s(汇编语言程序) -汇编器 hello.o(目标模块) - 连接器 -hello.exe对c语言中#开头的命令处理 将源程序翻译为汇编语言 将汇编语言翻译为 其他被引用的目标模块 -(将多个相关的目标模块链接成完整可执行文件)如宏定义常量的替换 二进制机器语言 可执行文件放在外存中,硬盘调入主存
1-2-4计算机系统的层次结构
虚拟机器 M4(高级语言机器) 用编译程序翻译成汇编语言程序 y=a*x+b虚拟机器 M3(汇编语言机器) 用汇编程序翻译成机器语言程序 MUL 6虚拟机器 M2(操作系统及其) 向上提供”广义指令” (系统调用)以下是硬件 以上是软件传统机器 M1(用机器语言的机器) 执行二进制机器指令 00010100微程序机器 M0(微指令系统) 由硬件直接执行微指令 微指令1 3 7 计算机体系结构–机器语言程序员所见到的计算机系统的数学概念性的结构与功能特性(指令系统,数据类型,寻址技术,io机理)有无乘法指令如何设计硬件与软件之间的接口 计算机组成原理–实现计算机体系结构所体现的属性,对程序员透明(具体指令的实现)如何实现乘法指令如何用硬件实现所定义的接口 这里透明是指看不见
1.2.3计算机软件
应用软件解决某个应用领域而编制的程序 系统软件(网络软件 网卡驱动器 调试程序 服务程序 标准程序库)负责管理硬件资源,并向上层应用软件提供基础服务 高级语言 编译 汇编 机器语言有的编程语言可以跳过汇编语言 JavaScript Python shell解释器 编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(每次执行都要翻译) 编译器 汇编器 解释器可统称为“翻译程序” 软件和硬件逻辑功能等价!同一个功能,既可以用硬件实现,(性能高成本高),也可以软件实现(性能低成本低) 指令集体系结构(ISA):软件和硬件之间的界面。设计计算机系统的ISA,就是要定义一台计算机可以支持哪些指令,以及每条指令的作用是什么,每条指令的用法是什么
080状压dp-上
k个样本状态有2的k次方个状压dp往往样本数据量都不大 20个以内 题目一 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263/ 我能赢吗// 给定两个整数n和m// 两个玩家可以轮流从公共整数池中抽取从1到n的整数(不放回)// 抽取的整数会累加起来(两个玩家都算)// 谁在自己的回合让累加和 >= m,谁获胜// 若先出手的玩家能稳赢则返回true,否则返回false// 假设两位玩家游戏时都绝顶聪明,可以全盘为自己打算// 测试链接 : https://leetcode.cn/problems/can-i-win/public class Code01_CanIWin { public static boolean canIWin(int n, int m) { if (m == 0) { // 来自题目规定 return true; ...
