01-布尔逻辑的习题

一,基础芯片的实现:使用Nand门,构建基本芯片
1,使用Nand门实现Not门

(1)原理:  Not(a) = Nand(a,a)

(2) 描述:

    芯片名:Not
  输入:a
  输出:out
  功能:if a=0 out=1 else out=0

(3)实现:

  CHIP Not{
    IN in;
    OUT out;
    PARTS:
    Nand(a=in,b=in,out=out);
  }

2,使用Not门,Nand门实现And门

(1)原理: And(a,b) =Not (Nand(a,b))

(2) 描述:

  芯片名:And
  输入:a,b
  输出:out
  功能:if a=b=1 out=1 else out=0

(3)实现:

  CHIP And{
    IN a,b;
    OUT out;
    PARTS:
    Nand(a=a,b=b,out=nandOut);
    Not(in=nandOut,out=out);
   }

3,使用Not门,And门,构建Or门

(1)原理:

  (i) x y   Or

0 0     0

0 1     1

     1 0     1

1 1     1

(ii) 只看0 描述为  x‘y‘ 再取反 (x‘y‘)‘    所以 x Or y = (x‘y‘)‘   或者只看1,为 x Or y = x‘y+xy‘+xy

这里选用了第一种,所以 Or(x,y) = Not(And(Not(x),Not(y)))

(2) 描述:

  芯片名:Or
  输入:a,b
  输出:out
  功能:if a=b=0 out=0 else out=1

(3)实现:

  CHIP Or{
    IN a,b;
    OUT out;
    PARTS:
    Not(a=a,out=nota);
    Not(b=b,out=notb);
    And(a=nota,b=notb,out=w1);
    Not(a=w1,out=out);
    }

4,使用Not门,And门,Or门构建Xor门
(1)原理:
  a b || Xor
  0 0 0
  0 1 1
  1 0 1
  1 1 0
只看Xor为1的那一项,a Xor b = a’b+ab’ 所以:Xor(a,b) = Or(And(Not(a),b),And(a,Not(b)))
(2)描述:
  芯片名:Xor
  输入:a,b
  输出:out
  功能:if a=b out=0 else out=1

(3)实现:
  CHIP Xor{
    IN a,b;
    OUT out;
    PARTS:
    Not(a=a,out=nota);
    Not(b=b,out=notb);
    And(a=nota,b=b,out=w1);
    And(a=a,b=notb,out=w2);
    Or(a=w1,b=w2,out=out);
  }

时间: 2024-10-28 21:27:50

01-布尔逻辑的习题的相关文章

关于布尔逻辑

布尔逻辑有四种--1.和.只有在组合表达式的每个部分都为真的时,组合式才会表达为真. 2.或.只要组合表达式中有一个部分为真,组合表达式就好为真. 3.异或.只有在组合表达式中有一个部分为真,而另一个部分为假,那么组合表达式才会为真. 4.非.对一个布尔表达式取反. Java中可用的逻辑运算符:     //C语言接触过一部分,也有一部分新的运算符,和Java有细微区别 短路和     && 和          & 短路或     || 或          | 异或 ^ 非  

计算机系统要素-第一章 布尔逻辑

1 前言    1) What I hear, I forget; What I see,I remember; What I do, I underStand.    2) 理解硬件.软件.编译器.操作系统之间如何交互,透彻理解计算机的内部工作原理.    3) 本书需要的工具和资源下载地址:http://www.nand2tetris.org/software.php    4) 本书涵盖内容        2 基本逻辑门实现    1) Not         /**         *

[日常] Go语言圣经--复数,布尔值,字符串习题

go语言圣经-复数 1.我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位.两种精度的复数类型:complex64和complex128,分别对应float32和float64两种浮点数精度 2.complex函数用于构建复数,real和imag函数分别返回复数的实部和虚部 go语言圣经-布尔型 1.布尔值可以和&&(AND)和||(OR)操作符结合,并且有短路行为 2.&&的优先级比||高 go语言圣经-字符串 1.一个字符串是一

01 Python 逻辑去运算

#and or not #优先级 ()>not>and>or #and or not print(2>1 and 1<4 or 2<3 and 9>6 or 2<4 and 3<2) # True or True or False #True print(3>4 or 4<3 and 1==1) #False print(1<2 and 3<4 or 1>2) #True print(2>1 and 3<4 o

1.6 比较、掩码和布尔逻辑

目录 第一章 numpy入门 1.6.1 台湾年降水量 1.6.2 比较操作 1.6.3 布尔操作 1.6.4 掩码操作 第一章 numpy入门 1.6.1 台湾年降水量 rainfall_t = pd.read_csv('rain_tw_2018.csv') print(rainfall_t.columns) rainfall = rainfall_t.loc[:,['Time','Rainfall']] print("获取time和rainfall列:\n",rainfall.he

创建及扩展逻辑卷

实验01    创建逻辑卷 实验目标    从两块磁盘上各取10GB组成20GB的卷组 从卷组中划分一个16GB的逻辑卷 将此逻辑卷格式化并挂载到/mbox 实验步骤     一.为新添加的两块硬盘分区        [[email protected] ~]# fdisk -l | grep LVM           //查看标记为LVM的分区        /dev/sdb1        1      1217    9775521   8e  Linux LVM        /dev

命题和逻辑

什么是命题? 1.能够区分真假,有效或者无效的陈述句 2.一个命题必须不是true就是false,不能兼备true or false 3.没有联结词的命题叫原子命题 examples: 北京是中国的首都(T) 1 + 1 = 2(T) 日本的首都是大阪(F) x = b(不是命题) 请听我说话(不是命题,祈使句不是) 今天几号了?(不是命题,疑问句不是) 什么是复合命题? 通过逻辑连接运算符,把一些已经存在的原子命题(不能被分解为更简单的陈述句的命题)联合起来组成的新命题 否定(也就是非): P

Linux 创建及扩展逻辑卷

实验01    创建逻辑卷 实验目标 从两块磁盘上各取10GB组成20GB的卷组 从卷组中划分一个16GB的逻辑卷 将此逻辑卷格式化并挂载到/mbox 实验步骤 一.为新添加的两块硬盘分区 [[email protected] ~]# fdisk -l | grep LVM           //查看标记为LVM的分区 /dev/sdb1        1      1217    9775521   8e  Linux LVM /dev/sdc1        1      1217    

MATLAB逻辑函数

%%逻辑函数 %%all:判断是否有元素非0,A是多维矩阵,all(A)是以列为单位来处理的,当前列的逻辑 %值为1,当且仅当当前列的每一个元素都非0 A=[1,2,3;0,2,1;5,0,2]; %all(A)=0 0 1 %例判断B=[2,2,6;7,9,1];的所有元素是否都大于等于1 B=[2,2,6;7,9,1]; ans=all(all(B>=1)); %ans=1,B>=1得到的是一个01的逻辑矩阵,两个all来判断是否所有值都大于1 %% %any:判断矩阵中是否有一个元素非0