任务描述
本关任务:根据输入获取的位运算符和运算数完成相应运算。键盘第一次输入的值为四种位运算符的一种,类型为字符型;第二次输入的是变量 a 的值,类型为 int 型;判断第一次输入的为何种位运算符,计算变量 a 使用该运算符与常量 10 的值,如果该位运算符为 ~,则将变量 a 的值进行取反,将最后结果不换行输出,如果不属于任何一种,输出:该字符无效
。
相关知识
为了完成本关任务,你需要掌握:
-
什么是位运算;
-
逻辑位运算的使用。
位运算
位运算:计算机在底层使用的是二进制补码进行运算。对应的二进制位进行操作,计算机只识别 0 和 1。位运算就是直接对整数在内存中的二进制位进行操作。
优点:巧妙的使用位运算可以大量减少运行开销,优化算法。
Java 中位运算符:只针对 int 类型的有效,Java 中,一个 int 的长度始终是 32 位,也就是 4 个字节,它操作的都是该整数的二进制数。也可作用于以下类型,即:byte,short,char,long(它们都是整数形式)。当为这四种类型时,会先把它们转换成 int 型再进行操作。
接下来我们来讲解位运算中的逻辑位运算。
逻辑位运算
逻辑位运算符有与 &、或 |、非 ~、异或 ^ 这四种。我们这里来为大家详细介绍这四种的使用。
与 & 位运算符
运算规则:全一则一,否则为零。
首先来看它在 Java 中的使用:
<