「java位运算的作用」java中位运算符的理解举例

博主:adminadmin 2022-12-23 01:30:05 65

本篇文章给大家谈谈java位运算的作用,以及java中位运算符的理解举例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA位运算怎么用的???

Java 位运算 Java 位运算[转]一,Java 位运算1.表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (l)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。2.位运算符 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括、)。1)左移位运算符()则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。3)Java也添加了一种“无符号”右移位运算符(),它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。

【JAVA】请问位运算符在实际中具体到底有哪些实际用处

位操作是程序设计中对位模式按位或二进制数的一元和二元操作。 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).

位运算符用来对二进制位进行操作,Java中提供了如下表所示的位运算符:位运算符中,除 ~ 以外,其余均为二元运算符。

操作数只能为整型和字符型数据。

3.4.1补码

Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。补码的规定如下:

对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为00101010。

对负数而言,把该数绝对值的补码按位取反,然后对整个数加1,即得该数的补码。如-42的补码为11010110(00101010按位取反11010101+1=11010110)

用补码来表示数,0的补码是唯一的,都为00000000。(而在原码,反码表示中,+0和-0的表示是不唯一的,可参见相应的书籍)。而且可以用111111表示-1的补码(这也是补码与原码和反码的区别)。

3.4.2按位取反运算符~

~   是一元运算法,对数据的每个二进制位取反,即把1变为0,把0变为1。

例如:

0010101

1101010

注意,~运算符与-运算符不同,~21≠-21。

3.4.3按位与运算符

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。即:

00=0,01=0,10=0,11=1

Java中位运算符的具体应用是什么,在实际编程中有什么作用

位逻辑运算符有“与”(AND)、“或”(OR)、“异或(XOR)”、“非(NOT)”,分别用“”、“|”、“^”、“~”表示。

下面的例子说明了位逻辑运算符:

//

Demonstrate

the

bitwise

logical

operators.

class

BitLogic

{

public

static

void

main(String

args[])

{

String

binary[]

=

{

"0000",

"0001",

"0010",

"0011",

"0100",

"0101",

"0110",

"0111",

"1000",

"1001",

"1010",

"1011",

"1100",

"1101",

"1110",

"1111"

};

int

a

=

3;

//

+

2

+

1

or

0011

in

binary

int

b

=

6;

//

4

+

2

+

or

0110

in

binary

int

c

=

a

|

b;

int

d

=

a

b;

int

e

=

a

^

b;

int

f

=

(~a

b)

|

(a

~b);

int

g

=

~a

0x0f;

System.out.println("

a

=

"

+

binary[a]);

System.out.println("

b

=

"

+

binary[b]);

System.out.println("

a|b

=

"

+

binary[c]);

System.out.println("

ab

=

"

+

binary[d]);

System.out.println("

a^b

=

"

+

binary[e]);

System.out.println("~ab|a~b

=

"

+

binary[f]);

System.out.println("

~a

=

"

+

binary[g]);

}

}

在本例中,变量a与b对应位的组合代表了二进制数所有的

4

种组合模式:0-0,0-1,1-0,和1-1。“|”运算符和“”运算符分别对变量a与b各个对应位的运算得到了变量c和变量d的值。对变量e和f的赋值说明了“^”运算符的功能。字符串数组binary代表了0到15对应的二进制的值。在本例中,数组各元素的排列顺序显示了变量对应值的二进制代码。数组之所以这样构造是因为变量的值n对应的二进制代码可以被正确的存储在数组对应元素binary[n]中。例如变量a的值为3,则它的二进制代码对应地存储在数组元素binary[3]中。~a的值与数字0x0f

(对应二进制为0000

1111)进行按位与运算的目的是减小~a的值,保证变量g的结果小于16。因此该程序的运行结果可以用数组binary对应的元素来表示。

java位运算的作用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中位运算符的理解举例、java位运算的作用的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。