[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理位运算符可以分辨单数还是双数?

...由于位运算符(<< >> & | ^)都是特殊符号,按照上面直接使用会出错。
例如 “SET /A var=1 & 1”与运算,并不会显示为1,因为cmd.exe 会把&解释成命令分隔符。
对于这样的"位运算符",我们需要把他们用双引号引起来,也可以用转义字符^,看例子。
SET /A var= 1 "&" 1 与运算 (同为1 时为真,一方出现假即为假)
SET /A var= 1 ^| 1 或运算 (同为假时才为假,只要一方出现真即为真)
SET /A var= 1 "^" 1 异或运算 (相同为假,相异为真)
SET /A var= 3 "<<" 2 左移位运算, 3 的二进制为11,左移2 位为1100,换成十进制就是12
SET /A var= 4 "^>^>" 2 右移位运算,4 的二进制为100,右移动2 位为1,结果为1
很明显,如果是移位操作符^,需要使用两次^,此时使用双引号显得更方便。...


看不明白,比如“Set /a var=1 "&" 1”,同为一时为真?怎么用if判断哦?
我反而得到很搞笑的结果:

Set /a var=1"&"1,var为1
set /a var=1"&"2,var为0
set /a var=1"&"3,var为1


所以"&"可以分辨单数还是双数?(单数为1,双数为0)

再来一个
set /a var=1^|3,var为3
set /a var=1^|4,var为5(1+4?)
set /a var=2^|4,var为6(2+4?)
set /a var=1^|5,var为5


所以^|也可以分辨双数单数?如果后面那个是双数,就2个加起来;如果不是,就直接用后面那个,不会加前面那个?


我混乱了啦~
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

是以2进制的方式进行运算的,参考:
http://bbs.bathome.net/thread-1844-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表