java位运算符的计算题(java位运算符详解)

http://www.itjxue.com  2023-02-23 01:47  来源:未知  点击次数: 

JAVA位运算符

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。

1.与运算符

与运算符用符号“”表示,其使用规律如下:

两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。

public class data13

{

public static void main(String[] args)

{

int a=129;

int b=128;

System.out.println("a 和b 与的结果是:"+(ab));

}

}

运行结果

a 和b 与的结果是:128

下面分析这个程序:

“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。

2.或运算符

或运算符用符号“|”表示,其运算规律如下:

两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。

public class data14

{

public static void main(String[] args)

{

int a=129;

int b=128;

System.out.println("a 和b 或的结果是:"+(a|b));

}

}

运行结果

a 和b 或的结果是:129

下面分析这个程序段:

a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,根据或运算符的运算规律,只有两个位有一个是1,结果才是1,可以知道结果就是10000001,即129。

3.非运算符

非运算符用符号“~”表示,其运算规律如下:

如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。

public class data15

{

public static void main(String[] args)

{

int a=2;

System.out.println("a 非的结果是:"+(~a));

}

}

4.异或运算符

异或运算符是用符号“^”表示的,其运算规律是:

两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。

public class data16

{

public static void main(String[] args)

{

int a=15;

int b=2;

System.out.println("a 与 b 异或的结果是:"+(a^b));

}

}

运行结果

a 与 b 异或的结果是:13

分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

JAVA编程 位运算符 问题

这是在二进制下的比较

a=129在二进制下是1000

0001

b=128在二进制下是1000

0000

这两段二进制数中的每一个0或者每一个1就是一个位

这两个对其比较都为1的话结果为1,其他情况为0

希望我的回答对你有帮助

java 运算符 计算题

a*b = 1 * 2 = 2;

c/2 = 3 / 2 = 1; (除法只取整数部分,小数部分舍弃)

2*(a+b)/c = 2*(1+2)/3 = 2*3/3 = 6/3 = 2;

2 + 1 + 2 = 5;

我不知道为什么上面的答案说题目有问题?

JAVA里的运算符问题

1.

"+"如果是数值运算

int

a

=

1,b

=

2;则a

+

b

=

3

如果是2个字符串相加

其功能就是

String

a

=

"a",b

=

"b";则a

+

b

=

"ab";

2.位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。

位运算符有:

(按位与)、|(按位或)、^(按位异或)、~

(按位取反)。

其中,按位取反运算符是单目运算符,其余均为双目运算符。

位运算符的优先级从高到低,依次为~、、^、|,

其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符。

按位与运算将两个运算分量的对应位按位遵照以下规则进行计算:

=

0,

1

=

0,

1

=

0,

1

1

=

1。

即同为

1

的位,结果为

1,否则结果为

0。

逻辑运算

(logical

operators)

通常用来测试真假值。最常见到的逻辑运算就是循环的处理,用来判断是否该离开循环或继续执行循环内的指令。

小于;

大于;=

小于或等于;=

大于或等于;==

等于;!=

不等于;

而且

(And);and

而且

(And);||

或者

(Or);or

或者

(Or);xor

异或

(Xor);!

(Not)

3.

表示前后2个条件一定要同时满足

才能为真

有一个条件为假的时候就是假

则不执行

一般用在

if(x

y

0)

{

System.out.print("x和y都是大于0");

}

else

{

System.out.print("x和y中有一个不是正数");

}

"||"这个“或”呢

属于条件取舍型的,也就是说c

=

a||b

只要a或者b为真的时候

这条表达式c就是为真

4.

右移

System.out.println(-31);

结果是-2,为什么会是-2呢?下面我们来看一下.

System.out.println(Integer.toHexString(-3));得到-3的16进制为fffffffd(此为-3的补码,计算机中负数用补码表示).

转换成2进制为1111

1111

1111

1111

1111

1111

1111

1101

右移一位为1111

1111

1111

1111

1111

1111

1111

1110,显而易见此为-2补码.

左移

System.out.println(-31);左移相对来说比较简单.

1111

1111

1111

1111

1111

1111

1111

1101左移一位为

1111

1111

1111

1111

1111

1111

1111

1010,其为-6的补码.

无符号右移

System.out.println(-31);

1111

1111

1111

1111

1111

1111

1111

1101无符号右移,高位补0,

01111

1111

1111

1111

1111

1111

1111

1110,其为2147483646的原码.

java无符号右移位运算符,题目如下,231-1是什么意思,急,谢谢!

这个答案就有问题,

如果表达式时-11

无符号右移1位,但是在java中默认-1就是int类型,占用四个字节。结果是2147483647

如果此题按照一个字节8位来算的话,结果也就127

至于上面的四个答案是怎么得出来的,天晓得。

后来搜了下问题所在,你这个东西就是盗版印刷。原题印刷应该这样

java使用位运算符,计算53x32的值

左移一位相当于乘以2,32 等于 2 的 5 次方,所以左移 5 位,即可算出 53 * 32 的值。代码如下:

public?class?App47?{

public?static?void?main(String[]?args)?{

System.out.println(53??5);

System.out.println(53?*?32);

}

}

(责任编辑:IT教学网)

更多

推荐淘宝营销文章