逻辑门(logic gates)

制造计算机的基本电路

今天读了《编码》第11章 门,刚刚用 C 语言函数把计算机中基本电路写出来了,包括以下6个:

  1. 缓冲器 (buffer);
  2. 反向器 (inverter);
  3. 与门 (AND);
  4. 或门 (OR);
  5. 与非门 (NAND);
  6. 或非门 (NOR);

代码部分

#include <stdio.h>
#include <stdbool.h>bool AND(bool x, bool y);
bool OR(bool x, bool y);
bool NAND(bool x, bool y);
bool NOR(bool x, bool y);
bool INVERTER(bool x);
bool BUFFER(bool x);int main(){return 0;
}bool AND(bool x, bool y){bool ret = 0;if(x && y) ret = 1;return ret;
}
bool OR(bool x, bool y){bool ret = 0;if(x || y) ret = 1;return ret;
}
bool NAND(bool x, bool y){bool ret = 1;if(x && y) ret = 0;return ret;
}
bool NOR(bool x, bool y){bool ret = 1;if(x || y) ret = 0;return ret;
}
bool INVERTER(bool x){bool ret = !x;return ret;
}
bool BUFFER(bool x){bool ret = x;return ret;
}

用 C 语言的基本电路函数实现买猫的过程

控制面板和电路图

程序用输入四个数来代表4个开关的状态,如果会写图形界面,用图形界面的四个按钮来表示开关就更完美了。
程序所有算法部分都是用那 6 个基本函数实现的。主要有两组算法,一个是控制面板的算法,另一个是电路图的算法。

代码说明

输入4个数, 代表控制面板的四个开关,输入 0 表示开关在下面, 输入1 表示开关在上面,比如第一个开关 0 代表 M (公猫),1 代表F(母猫)。
输出1个数,表示结果, 0 表示不是想买的猫, 1表示是想买的猫。
输入示例:
0 0 1 0
输出示例:
1

源代码

#include <stdio.h>
#include <stdbool.h>bool AND(bool x, bool y);
bool OR(bool x, bool y);
bool NAND(bool x, bool y);
bool NOR(bool x, bool y);
bool INVERTER(bool x);
bool BUFFER(bool x);int main(){int t1 = 0;int t2 = 0;int t3 = 0;int t4 = 0;bool F;bool M;bool N;bool U;bool B; bool O;bool W;bool T;bool Meow;printf("Please input four numbers, 0 or 1\n");scanf("%d %d %d %d", &t1, &t2, &t3, &t4);F = BUFFER(t1);M = INVERTER(t1);N = BUFFER(t2);U = INVERTER(t2);B = AND(BUFFER(t3), INVERTER(t4)); O = AND(BUFFER(t3), BUFFER(t3));W = AND(INVERTER(t3), INVERTER(t4));T = AND(INVERTER(t3), BUFFER(t4));Meow = OR(AND(N, OR(AND(M, OR(W, T)), AND(F, INVERTER(W)))), B);printf("%d\n", Meow);return 0;
}bool AND(bool x, bool y){bool ret = 0;if(x && y) ret = 1;return ret;
}
bool OR(bool x, bool y){bool ret = 0;if(x || y) ret = 1;return ret;
}
bool NAND(bool x, bool y){bool ret = 1;if(x && y) ret = 0;return ret;
}
bool NOR(bool x, bool y){bool ret = 1;if(x || y) ret = 0;return ret;
}
bool INVERTER(bool x){bool ret = !x;return ret;
}
bool BUFFER(bool x){bool ret = x;return ret;
}

逻辑门 与 买猫电路升级版相关推荐

  1. 用 C语言模拟买猫的过程

    这是一个防止代码丢的笔记 最近在学习C语言,同时也在读<编码>这本书,读着读着突然有一种想把编码中的电路实现出来的想法,由于现实世界中缺少材料(大量的电线.开关和灯泡等等),所以产生了用C ...

  2. 微型计算机电路基础第四版逻辑门,数字逻辑的电路基础——逻辑门.PDF

    数字逻辑的电路基础--逻辑门 课程代码 第三讲数字逻辑的电路基础 --逻辑门 佟冬 Microprocessor R&D Center tongdong@ /courses/digital/2 ...

  3. 小米台灯突然自己亮了_升级版值不值得买?米家台灯1代1S对比测评

    图吧垃圾佬对于米家两款台灯比较认真仔细的对比测评(附对照) 首先先说结论:值 台灯作为生产力工具我们在日常生活中常常会忽视它的作用,认为只要有个亮光就够用了,过去咱也是这么想的所以经常干一些现在看来一 ...

  4. 爬了20W+条猫咪交易数据,它不愧是人类团宠

    作者 | 叶庭云 来源 | 修炼Python 头图 | 下载于视觉中国 前言 看到可爱的猫咪表情包,总是会忍不住收藏,晒部分图如下: 认识的一些朋友也养了猫,比如橘猫.英短.加菲猫之类的,看他们发朋友 ...

  5. 用jk触发器构成二分频电路_深入了解数字电路之时序电路

    什么是时序电路? 组合电路是根据当前输入信号的组合来决定输出电平的电路,换言之,就是现在的输出不会被过去的输入所左右,也可以说成是,过去的输入状态对现在的输出状态没有影响的电路.时序电路和组合电路不同 ...

  6. 练习答案-分支与循环-超市买苹果练习-猜数字小游戏

    超市买苹果,初始版 需求 参考代码 # 苹果价格 多少钱一斤 price = 5# 买家购买数量 num = int(input("需要买几斤苹果"))# 总价格 total_pr ...

  7. 什么猫猫最受欢迎?Python采集猫咪交易数据

    前言 在日常生活中,我们看到可爱的猫咪表情包,总是会忍不住收藏 认识的一些朋友也养了猫,比如橘猫.英短.加菲猫之类的 看他们发朋友圈撸猫,老羡慕了,猫咪真的太可爱啦. 你是不是也动过养猫猫的小心思呢~ ...

  8. 会撸猫了不起啊?有本事自己写一个撸猫撸鱼撸飞机才是牛逼

    内容 | 蔡一  北京志顶科技技术总监 整理 | Aholiab 「撸猫」游戏是2月8日上线iOS版的中国区,有个很有意思的中文名,叫「谜恋猫」.它背后是基于ERC721协议的,因为ERC20标准通证 ...

  9. 计算机实现原理专题--逻辑门

    该专题是"编码"一书的学习笔记,通过笔记的形式能让自己更好的理解计算机的实现原理(注意这里说的是实现原理而不是组成原理,千万不要和大学的计算机组成原理混为一谈).计算机只认0和1, ...

  10. 凶猛现金贷背后的欲望深渊:女子网上撸81只猫,欠下70万元债

    http://finance.qq.com/a/20171114/005362.htm?pgv_ref=aio2015&ptlang=2052 由趣店集团赴美上市引发的舆论争议尚未平息,11月 ...

最新文章

  1. python守护进程进程池_Python进程池非守护进程?
  2. 17.ubuntu18.04解决压缩包乱码问题
  3. 历史上最伟大的方程 (托尼·赖斯 著)
  4. 有人知道 I3C 吗?
  5. 【TensorFlow】随机训练和批训练的比较与实现
  6. 获取pheatmap热图聚类后和标准化后的结果
  7. ASP.NET的分页方法(一)
  8. POJ1185炮兵阵地(状态压缩 + dp)
  9. 细思极恐:网传某软件可一键监控员工是否要“跑路”,争议发生后,监控系统研发商悄悄下架相关服务...
  10. 计算机软件销售收入会计,嵌入式软件产品销售额如何计算
  11. 自己做量化交易软件(26)小白量化事件回测之MetaTrader5自动回测
  12. kindle看pdf乱码_Kindle 中文书名 目录 乱码 解决办法
  13. 在Web网页里面实现像Excel/WPS条件格式那样根据数据大小自动改变背景颜色(网页数据热力图实现方法)
  14. 《软件测试》第十二章 文档测试
  15. 怎么做照片拼图?这些方法值得收藏
  16. 数值微分的python实现
  17. HDU 5441并查集 by cyl
  18. 赫夫曼压缩(萌新劝退)
  19. 城市信息area.js
  20. 什么是数据中心基础设施管理(DCIM)

热门文章

  1. MySql desc 的三种用法
  2. Rational Team Concert 2
  3. 一根网线实现双机互联共享文件
  4. day-9 字符串笔记
  5. 如何写 peer review
  6. ddos攻击服务器的几种方式
  7. 关于火狐浏览器访问淘宝网页时,点击店家旺旺无法弹出对话框的解决方案
  8. 操作系统--内存管理超详细整理!
  9. 互联网知识更新快,该如何学习
  10. 第三十章 被动语态