java中非法运算符_java特殊运算符

本文详细介绍了按位运算符的基本概念及应用,包括与(&)、或(|)、异或(^)、非(~)等运算符的定义及示例。同时,还介绍了左移、带符号右移和不带符号右移运算符及其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按位运算符

定义:按位运算符是来操作整数基本数据类型中的单个“比特”(bit),即二进制位,位运算符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。

分类:与(&)、或(|)、异或(^)、非(~)

1、与运算

定义:都为1才得到1,其它情况得到0

如:5&4

二进制:0101 & 0100  = 0100       0100对应十进制4

2、或运算

定义:两个数有一个为1,则得到1

如:5|4

二进制:0101 & 0100  = 0101       0101对应十进制5

3、异或运算

定义:两个数不同则得到1

如:5^4

二进制:0101 ^ 0100  = 0001       0001对应十进制1

4、非运算

定义:取反(需要考虑 符号位)

如:~5

二进制:~0000 0000 0000 0101  = 1111 1111 1111 1010   1111 1111 1111 1010对应十进制-6

顺便说下:符号位在最高1位,符号位为0表示正数,为1表示负数

移位运算符

1、左移运算符

定义:运算符左边数据的二进制位依次往左移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制最右边)用0补位。

说明:左移只考虑末尾位,不管正负数,都不影响符号位,因此不分有无符号位运算

如:4830 << 5 (4830的二进制位左移5位)

4f82a94f4817ce4ec9d604f0bd68e037.png

结果:

e3ad5a344b087a73fedfc710a8d2b412.png

总结:x << y 相当于 x*2y

2、带符号右移运算符

定义:运算符左边数据的二进制位依次往右边移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制位最左边)用0或者1(正数用0,负数用1)补位。

正数

如:4830 >> 5

813789318a616968a819047e9418d0b3.png

结果:

e006924e970082c7fe9ae03b48978b2d.png     正数用0补位,输出时应为0000010010110(输出省略前面0)

负数

如:-4830 >> 5

1311c82821614834424aaecd60ec3f8d.png

结果:

ae3910f662505e2a4757f2a2164f85b2.png

总结:x << y 相当于 x/2y

3、不带符号右移运算符

定义:运算符左边数据的二进制位依次往右边移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制位最左边)用0补位。

说明:负数在此没有算数意义,因为只补0,

如:-4830 >>> 5

36dff2a6c37adb690dc070dc694fb364.png

结果:

1c3c57b8c0989094c6f470fb6df5a850.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值