- 帖子
- 36
- 积分
- 529
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2009-11-30
|
[其他] 学习批处理需要了解离散数学的哪些逻辑方面的知识?
我知道学习批处理要非常好的逻辑方面的能力,得有初步的逻辑符号的概念了解,但我不清楚具体应该看哪些,像只无头苍蝇似地乱转只会浪费我的时间,所以请论坛里的大虾们指引指引,谢谢。
不要跟我说不需要,我早就在论坛里面看过了namejm的帖子:中国DOS联盟批处理室经典帖子合集2008A出处:http://www.bathome.net/thread-3527-1-1.html。那里面清清楚楚的说了需要!下面是我在帖子里面的附件看到的一片回复:
====================================================================================
作者: plp626 时间: 2008-4-19 14:12
逻辑 "异", "或", "与": "^", "|", "&"
注意在批处理中或命令行下要在运算符前加上^
这里的: ^ | & 对应于
离散数学上的: 异或⊕ 析取∨ 合取∧
规则: 合取∧(有0则0) 析取∨ (有1则1) 异或⊕ (同0反1)
我这里解释下规则: 合取∧(有0则0) 析取∨ (有1则1) 异或⊕ (同0反1)
只说逻辑或|(吸取),其他类似
逻辑或是按位(转换为2进制数)吸取---有1则1,无1则0
比如12的二进制数为1100
6的二进制数110
现在对他们做逻辑或|(吸取运算:有1则1,无1则0)
首先对齐位数,不够的前面补0
1100
0110
-------
1110
--------------------------------------------------------------------------------------------------------------------------------
作者: 26933062 时间: 2008-4-19 14:33
非常感谢各位的热心解答。
看了 plp626 兄的这一句:吸取---有1则1,无1则0
是否可以这样理解:
set /a w="(n|m)" 此句中,n或m 只要有一个是1,那么结果就是1,否则结果就是0 ?
n和m的位数必须是一样多的么?
------------------------------------------------------------------------------------------------------------------------------------
作者: plp626 时间: 2008-4-19 16:51
不对,
你先把n,m转化为二进制数,这个不用我多说了吧,
有1则1,无1则0是对应位上 的运算.两个数位数不等时,少的前补0,
6的2进制数为110是一个3位二进制数,
12的二进制数为1100是一个4位二进制数,
怎么办,其实110就是0110,也是00110,因为这些数转化为10进制数都是6,
所以6|12--->0110∨1100=1110
0 1 1 0
1 1 0 0
------------∨(对应位上有1则1,无1则0)
1 1 1 0
这个1110是个2进制数,计算机得转化为十进制数告诉你
1110转为进制数为就是14,所以:
set/a w="6|12"
w就是14
====================================================================================
这是里面的原话,里面确确实实是申明了需要离散数学的逻辑知识,我希望各位能指引一下,再谢。
[ 本帖最后由 cao 于 2010-1-20 18:39 编辑 ] |
|