数字逻辑

数字逻辑基础(数制转化)

一笑奈何 提交于 2020-03-04 23:35:20
数制和数制转化 日常生活中,我们使用的是十进制,而计算机使用的是二进制,所以我们将十进制输入到数字系统之前,都会进行数制的转化,同一个道理,数字系统向我们输出数字时,需要先转化为十进制。除此之外,还有八进制,十六进制与二进制之间的相互转化。 (1) 二进制转化为十进制 ①按权展开 ②基位连乘、连除法 名字听上去很玄乎,其实理解起来不难。 整数部分,最高位乘以2加下一位,以此类推 小数部分,最低位除以2加上一位,依此类推 最后小数部分加整数部分 (2) 十进制转化为二进制 ①提取2的幂 二进制转化为十进制的按权展开法的逆过程。需要熟悉2的各次幂的值。 ②基数连除、连乘法 这种方法也是把十进制数的整数部分和小数部分分别进行转换,然后将结果相加。 整数部分采用“除2取余”法转换,即把十进制整数连续除以2,直到商等于零为止,然后把每次所得余数(1或者0)按相反的次序排列,即得转换后的二进制数整数。 小数部分采用“乘2取整”法转换,即把十进制小数连续乘以2,直到小数部分为零或者达到规定的位数为止,然后将每次所取整数按序排列,即得转换后的二进制小数。 二进制与十六进制和八进制的转换 四位二进制对应一位十六进制,三位二进制对应一位八进制。 转换方法为:将二进制数转换为十六进制数(或八进制数)时,从二进制数小数点开始,分别向左、右按4位(转换为十六进制)或3位(转换为八进制)分组

简单计算机系统综合设计(CPU)

末鹿安然 提交于 2020-02-01 10:36:09
简单计算机系统综合设计(CPU) 前言:作为一位来自于湖南大学的本科生,让我最难忘记的就是这一次CPU的综合设计了。学软件的我,贴一篇硬件编程没啥意思,纯当打发时间。 基本部件 数字逻辑实验中我们要求完成的有以下基本部件,使用VHDL源完成编程。 0000:指令寄存器IR, a) 模块的接口设计 控制信号:LDIR,CLK,I[7…0] 输入信号:需执行指令I[7…0] 输出信号:需执行指令out1[7…0] b) 功能实现 根据指令寄存器IR的功能可知: 当HALT = 1 时,输出信号 x[7…0] 为高阻态; 否则,当处于时钟下降沿时,LDIR = 1时,输出信号out[7…0]为输入信号I[7…0]。 VHDL的实现如下所示: library ieee; use ieee.std_logic_1164.all; entity IR is port (LDIR, CLK : in std_logic; I : in std_logic_vector(7 downto 0); OUT1 : out std_logic_vector(7 downto 0) ); end IR; architecture behavior of IR is signal command: std_logic_vector(7 downto 0); begin OUT1 <= command;

[数字逻辑]7-6 A类数 (20分)

跟風遠走 提交于 2020-01-19 23:33:33
一个二进制数,如果1的个数多于0的个数 ,则称A类数,否则称非A类数。例如:1001,1000为非A类数,1101和1111000为A类数。 16之内对应的二进制数是A类数的为:1,3,5,6,7,11,13,14,15。所以16之内有9个A类数。 对给定的整数,求在该整数范围内有多少个A类数。 输入格式: 输入一些正整数N(N<=400000),一行一个数。以^Z或文件结束符结束输入。 输出格式: 输出对应整数范围内A类数的个数。一行一个数。末尾输出换行符。 输入样例: 在这里给出一组输入。例如: 16 20 输出样例: 在这里给出相应的输出。例如: 9 10 思路:同7-3 先将A类数存进一个数组减少时间 1 #include <iostream> 2 using namespace std; 3 #define maxN 400005 4 int cnt[maxN]; 5 6 int main() 7 { 8 int i, num, k, len; 9 cnt[1] = 1; 10 for (i = 2; i < maxN; i++) 11 { 12 num = i; 13 k = 0; 14 len = 0; 15 while (num) 16 { 17 len++; 18 if (num % 2 == 1) 19 k++; 20 num = num / 2; 21 }

数字逻辑——第一章开关理论基础(1)

三世轮回 提交于 2019-12-04 17:51:25
二进制系统 什么是二进制系统? 二状态系统称为二进制系统。如电平的高低、开关的通断。 数字波形 上升时间 :从脉冲时间的10%到90%的时间 下降时间 :从脉冲时间的90%到10%的时间 脉冲宽度 :上升沿的50%到下降沿的50%的时间 周期性脉冲的频宽比 (或称占空系数):(脉冲宽度/周期)*100% 数制 码制 表示字符等一类被处理的信息,也需要用 一定位数 的二进制数码表示,这个特定的二进制代码称为代码。代码是不同信息的代号,不一定有数的含义。 二—十数码 把0~9各个数码用四位01代码表示 十进制 8421 格雷码 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 1110 6 0110 1010 7 0111 1000 8 1000 1100 9 1001 1101 8421BCD码 8421BCD码是自然二进制码的一种,它的结构与二进制数完全相同,但是要注意他不具有数值大小的概念,他是一种码制。其中每位代码都有固定权值,即从高位到低位的权值依次是8421. 格雷码(循环码) 任何相邻的两个码字中,仅有一位代码不同,其他位代码相同。(编码方式不唯一,上表只是其中一种编码方式) 余三码 在8421码的基础上,把每个代码都加0011码而形成,他的主要优点是执行十进制数相加时

大一课程总结

匿名 (未验证) 提交于 2019-12-02 23:47:01
1.当初你是如何做出选择计算机专业的决定的? 决定就读于集美大学后,按照分数线以下专业按优劣顺序排序再根据兴趣排除、 调整专业顺序,最终软件工程排在第一项。(有考虑到软件专业良好的就业前景) 2.对比开篇博客,哪些方面还存在不足? ①知识储备不够,内容太单薄,仍有许多未解释清楚的问题。 ②没什么耐心去整理,排版,博客数量太少。 3.回忆整个学期,如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变? 多思考把基础知识点理清楚,多刷题加强记忆,多实践学会灵活应用知识点。 4 .你预备如何规划剩余的2/3? 并高效率地利用自己的时间,不要太贪玩学会自律。 5.对于马上入学的2019级新生,如何学习专业课程(C语言、数据结构、数字逻辑等),请给出你的建议。 要有预习意识、超前意识,学会独立解决问题。C语言基础一定要打扎实多刷题, 数据结构多花时间不懂要学会问,数字逻辑认真听课按照老师要求做好每一步即可。 6.关于编程比赛 在课内知识掌握好的情况下抽空在人最大能力范围内考虑参赛的事情。 尽量多给自己一些学习锻炼的机会。