与:都有才行
与非:都有才不行
或:有一个就行
或非:有一个就不行
AB发生,A不发生C发生,BC发生,
异或:AB相异则为一,不然则为0
同或:AB相同则为1,不然则为0
A与A逆肯定不同,则A异或A逆为1,
A与A同,则A异或A为0
A与1异或,如果A为1,则返回0(同),即A逆;A为0,则为1(不同),即A逆
A与0异或,如果A为1,则返回1(不同),即A;如果A为0,则返回0(同),即A;
如果变量为1的个数(两两配对成0,异或不影响结果,还剩1个1,则异或结果为1)为奇数,则异或结果为1
为偶数(两两配对成0,异或完为0)时,结果为0;异或结果与0的个数无关,与1的个数有关。
反演规则:(变量变非,符号变)
不能改变原来的运算顺序,顺序不变,符号变(长非号保持不变)
只对单个变量有效,长非号是a+b,a.b复合后的一个事件
对偶规则:(变量不变,符号变)
经过规则后,等式依然成立
定点数:纯小数或纯整数
0正1负
正数的补码在其二进制代码前加上符号位0
负数:符号位除外,各位取反,末位+1
负数的补码是将代码前加0后,再全部按位取反,然后在最低为+1
正数x求-x的补码:正数x最高位为0变为x的补码,然后再取反码,最低位+1得-x反码
补码加减法
首先将减数的符号取反,然后被减数与符号取反后的减数按原码加法进行运算
符号位与码值位一起参与运算,符号位有进位则舍去,码值位不舍
N1=-0011,N2=1011
N1补=11101,N2补=01011
-N2补=10101
二进制转八进制:以小数点为界,分别往高,往低每3位一组,最后不足3位时用0补充,再转为10进制下的数,拼在一起就是所求八进制数
011 100 101-》3 4 5
转十六位进制,每4位一组,最后不足4时用0补足,
101110.011-0010 1110 .0110-2 E.6
十六进制转二进制:每个位数转为用四位二进制数表示,5A.B=0101 1010 1011
左移32位表示填32个0
int 为32位,运算超过32位时(溢出),舍去超过32位的数
0表示00000,1为前31都是0,最后一位为1
-1+1=0,就是让相反数加起来刚好溢出,为0,就是补码
-1为111111111111,32个1。
任意一个二进制数,问其相反数,就是问哪个数和它加和为0(溢出),
取其反码,此时加起来就是32个1(反码:原码1的地方为0,原码为0的地方是1,加起来就是1)
再加个1,就是32个0,即相反数为反码+1,即补码。
可以发现,原码越大,补码越小(需要达到溢出的数越小)
原码越小,补码越大。原码+补码=溢出0