Posts

Showing posts from August, 2020

數邏和C++基本運算篇

 CH1:數邏基本運算篇 前言: 這些東西不會很難,有些公式和特性可以試著推倒並理解和記住, 千萬別死背(跟記不一樣) 原理: not , or, and , xor ...布林運算式,它只用真或假判斷 因此整數型態會被換成布林,然後再做運算 bitwise_not , bitwise_and 位元運算式,是一個位元對應一個位元 因此布林型態先會被轉成10進位整數,整數將會被換成2進位數字,然後再做運算 整數型態 注意: C,C++沒有nor ,  nand ,xnor 運算子,必須用多個運算子組合 運算子: let a is a real number, b is a boolean type not: C,C++:!,not 口訣:假真顛倒 !F=T; !T=F; !!b=b; !!a is not necessary equivalent to a bitwise_not , complement sign , destructable class sign: C,C++:~ 口訣:假真顛倒 ~0=-1 ~1=-2 ~~a=a or: C,C++: || , or 口訣:全假為假 F||F=F; T||F=T; F||T=T; T||T=T; b||T=T; a||T=!!a; bitwise_or: 口訣:全假為假 C,C++:| 0|0=0; 0|1=1; 1|0=1; 1|1=1; a|0=a; b|0=b;(int type) a|1=a+(a-1)%2; a|3=a+(a-1)%4; a|7=a+(a-1)%8; a|(pow(2.0,n)-1)=a+(a-1)%pow(2.0,n); and: C,C++: &&,and 口訣:1個甲子園1個假像(1假為假) bitwise_and: C,C++: & , and 口訣:1個甲子園1個假像(1假為假) F&&F=F; T&&F=F; F&&T=F; T&&T=T; 0&0=0; 0&1=0; 1&0=0; 1&1=1; [property] a&0=0; b&1=b; b&0=0; [formula] a&1=a%2; a&3=a%4; a&