二进制操作符
最近额外看了几本书,看到老外对答案的态度:“即使你无法独立完成,不得不去看答案,你也不必感到沮丧”
这是一种什么样的胸怀?作者努力保持快乐的学习氛围。学习的目的在于掌握,而不在于用什么样子的手段。
联系到最近某些高校,禁止新生用电脑,更有甚者河南某高校,逼迫学生缴纳用电脑的管理费。教育思想真是千差万别。而藕认为,让大学生走些弯路也未尝不可,毕竟每个人都有自己选择的权利。不过,那些指定这些规矩的学生处的大爷们,在藕看来,根本不懂什么是现代教育,不懂学生心理,更是拿着对学生好的心态去工作。
这是学生口大爷们的一厢情愿,千古如此,如今亦然,殊不知,你们那两下子,在高智商的中国学社面前,还是嫩了。
扯远了,代码伺候。
下载: 1.4.c
- main(){
- int x, y, z;
- x= 03; y = 02; z = 01;
- PRINT(x|y&z);
- PRINT(x|y&~z);
- PRINT(x^y&~z);
- PRINT(x&y&&z);
- x=1,y=-1;
- PRINT(!x|x);
- PRINT(~x|x);
- PRINT(x^x);
- x<<=-3;PRINT(x);
- y<<=3;PRINT(y);
- y>>3;PRINT(y);
- 输出:
- x|y&z=3
- x|y&~z=3
- x^y&~z=1
- x&y&&z=1
- !x|x=1
- ~x|x=-1
- x^x=0
- x=8
- y=-8
- y=?
- // 都是八进制,呵呵,看出来没?
- (x|(y&z))
- (x|(02&01))
- (x|0)
- (03|0)
- 03
- 昨晚没搞完,今天继续
- x=03,y=02.z=01
- x|y&~z
- (x|(y&(~z)))
- (x|(y&~01))
- (x|(02&~01)) //~操作符对他的操作数按位求补
- (03|02)
- 3
- 最后,在二进制里:
- 0.....010
- & 1.....110
- ————————
- 0000010
- 10
- | 11
- ————
- 11
- 初值x=03,y=02,z=01
- x^y&~z
- (x^(y&(~z))) //与上一个表达式相似
- (x^(02&~01))
- (03^02)
- 1
- 初值x=03,y=02,z=01
- x&y&&z
- ((x&y)&&z)
- ((03&02)&&z)
- (02&&z)
- (TURE&&z)
- (TURE&&01)
- (TURE&&TURE)
- 1
- 初值x=01
- ((!x)|x)
- ((!TURE)|x)
- (FALSE|01)
- (0|01)
- 01
- 初值x=01
- ~x|x
- ((~x)|x)
- (~01|01)
- -1
- 1...110
- | 0...001
- _________
- 1...111 即为-1
- 初值x=01
- x^x
- (01^01)
- 0
- 0...01
- ^ 0...01
- __________
- 0...00 与x的值无关
- 初值x=01
- x<<=3
- x=01<<3
- x=8
- 二进制:
- 0000...01
- << 3
- _______________
- 0...01000 即为8,从效果看,每左移一位就相当于乘以2
- 初值:y=-01
- y<<=3
- y=-01<<3
- y=-8
- 二进制:
- 1111...11
- <>=3
- y=-08>>3
- 此题貌似y=-1,可惜情况并非总是如此,有些计算机右移操作时不保留操作数的符号位,而且c语言本身也不保证位移操作的结果在数学一以上肯定正确。不管怎样还是使用更为清晰的除以8的表达方式:y/8

不错……不过,我告诉你啊,大学生确实应该远离电脑,珍爱自习的。
以后出台规定,学校方圆5公里之内不得有网吧。
网吧安装视频头,视频头的终端在学校内。