300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java double 位运算_JAVA位运算等运算符总结

java double 位运算_JAVA位运算等运算符总结

时间:2024-06-15 13:31:12

相关推荐

java double 位运算_JAVA位运算等运算符总结

JAVA位运算等运算符总结

一、概述

运算符是一种“功能”符号,用以通知 Java 进行相关的运算。

Java 语言中常用的运算符可分为如下几种:算术运算符

赋值运算符

比较运算符

逻辑运算符

条件运算符

位运算符

如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。

二、算数运算符

就是加减乘除这些,没什么可说的。

+ - * / % ++ --

加 减 乘 除 取余 自增 自减

三、赋值运算符

就是把右边的值运算之后赋值给左边,没什么可说的。

= 右边值给左边

+= 左右相加给左边

-= 左右相减给左边

*= 左右相乘给左边

/= 左右相除给左边

%= 左右取余余数给左边

<<= 左边数据左移位赋值给左边

>>= 左边数据右移位赋值给左边

&= 按位与赋值运算符

^= 按位异或赋值操作符

|= 按位或赋值操作符

四、比较运算符

就是判断两个数据的大小,没什么可说的。

== 判断是否相等

!= 判断是否不等

> 判断是否大于

< 判断是否小于

>= 判断是否大于等于

<= 判断是否小于等于

五、逻辑运算符

就是操作两个boolean类型,还是有点可说的。

&& 短路与 (符号两边左边为假,就是假,右边可能会被短路。两边都是真则为真)

|| 短路或 (符号两边任何一个为真,就是真,右边可能会被短路。两边都是假则为假)

& 逻辑与 (符号两边都是真则为真,其余为假,和短路与意义一样,但是右边肯定会执行,执行完合并判断)

| 逻辑或 (符号两边任何一个为真,就是真,和短路或意义一样,但是右边肯定会执行,执行完合并判断)

! 逻辑非 (用来反转操作数的逻辑状态)

^ 逻辑异或 (符号两边结果相同为假,不同则为真)

可以将boolean的true和false看作是1和0,这样&和|的意义就是按位与和按位或。

六、条件运算符

就是? : 也称为 “三元运算符”,没什么可说的。

语法形式:布尔表达式 ? 表达式1 :表达式2

2 > 1 ? 2 : 1

结果是2

冒号前面的放true的逻辑,后面放false的逻辑。

七、位运算符

位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。作用在所有的位上,并且按位运算

& 与,如果相对应位都是1,则结果为1,否则为0

| 或,如果相对应位都是 0,则结果为 0,否则为 1

^ 异或,如果相对应位值相同,则结果为0,否则为1

〜 取反,按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

<< 按位左移运算符。左操作数按位左移右操作数指定的位数。

>> 按位右移运算符。左操作数按位右移右操作数指定的位数。

>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

按位操作,首先要知道不同类型字节长度,网上都是显示一个字节8位,不是每个数字都是8位的。但你可以将计算过程以8位来算。

不同类型长度如下:

| 类型 | 字节 | 位 | 长度 | 范围(可以在源码里查看) | | ------ | ------ | ------ | ---- | --------------------------------- | | byte | 1 byte | 8 bit | 2^8 | -2^7, 2^7-1 | | char | 2 byte | 16 bit | 2^16 | \u0000~\uFFFF | | int | 4 byte | 32 bit | 2^32 | -2^31, 2^31-1 | | short | 2 byte | 16 bit | 2^16 | -2^15, 2^15-1 | | long | 8 byte | 64 bit | 2^64 | -2^63, 2^63-1 | | double | 8 byte | 64 bit | 2^64 | 4.9e-324, 1.7976931348623157e+308 | | float | 4 byte | 32 bit | 2^32 | 1.4e-45f, 3.4028235e+38f |

做位操作,还要明白什么是原码,反码,补码。正数的原码,反码,补码都一样;

负数的反码是对除了符号位(最高位)对原码取反,补码是对反码+1,负数原码和正数原码除最高位不一样其他位一样。

计算机计算是用的补码

负数以补码看原码,先减1看反码,再反转看原码。

以int整型32位,带负数为例子(正数的太简单了,略过):

按位与&(补码):

数字1:00000000000000000000000000000001

数字-128:11111111111111111111111110000000

&结果:00000000000000000000000000000000

1 & -128 = 0

数字-1:11111111111111111111111111111111

数字-128:11111111111111111111111110000000

&结果:11111111111111111111111110000000

-1 & -128 = -128

按位或|(补码):

数字1:00000000000000000000000000000001

数字-128:11111111111111111111111110000000

|结果:11111111111111111111111110000001

1 | -128 = -127

数字-1:11111111111111111111111111111111

数字-128:11111111111111111111111110000000

|结果:11111111111111111111111111111111

-1 | -128 = -1

按位异或^(补码):

数字1:00000000000000000000000000000001

数字-128:11111111111111111111111110000000

^结果:11111111111111111111111110000001

1 ^ -128 = -127

数字-1:11111111111111111111111111111111

数字-128:11111111111111111111111110000000

^结果:00000000000000000000000001111111

-1 ^ -128 = 127

按位取反〜(补码):

数字1:00000000000000000000000000000001

〜结果:11111111111111111111111111111110

~1 = -2

数字-128:11111111111111111111111110000000

〜结果:00000000000000000000000001111111

~-128 = 127

按位左移<

数字1:00000000000000000000000000000001

左移4位(<<4)结果:00000000000000000000000000010000

1 << 4 = 16

数字-128:11111111111111111111111110000000

左移4位(<<4)结果:11111111111111111111100000000000

-128 << 4 = -2048

按位右移>>(补码):

数字1:00000000000000000000000000000001

右移4位(>>4)结果:00000000000000000000000000000000

1 >> 4 = 0

数字-128:11111111111111111111111110000000

右移4位(>>4)结果:11111111111111111111111111111000

-128 >> 4 = -8

无符号右移>>>(补码):

数字1:00000000000000000000000000000001

右移4位(>>>4)结果:00000000000000000000000000000000

1 >>> 4 = 0

数字-128:11111111111111111111111110000000

右移4位(>>>4)结果:00001111111111111111111111111000

-128 >>> 4 = 268435448

快速构建项目

Spring项目快速开发工具:

喜欢这篇文章么,喜欢就加入我们一起讨论SpringCloud使用吧!

喜欢这篇文章么,喜欢就加入我们一起讨论SpringCloud使用吧! [外链图片转存中...(img-JflslkRx-1589852532700)]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。