网站首页 > 精选教程 正文
什么是 ^ 操作?
^ 是一种位运算符,叫“异或”,运算逻辑是:相同为0,不同为1。
举例:0^1 = 1,1^1 = 0
位运算符还有:与&、或 |、非 ~
与&:a & b 时,只有a、b都为1,结果才是1,否则结果为0。
或 | :a | b 时,a、b只要有一个为1,那么结果就是1,否则为0。
非 ~ :~a 时,a为0则结果是1;a为1则结果是0。
什么是源码、反码、补码?
原码:最左边一位表示这个数的正负,0代表正,1代表负,后面是它的有效数字。
反码:最左边符号位0代表正,1代表负;后面的有效数字,正数的原码和反码一样,负数的反码是原码数字的取反。
补码:最左边符号位0代表正,1代表负;后面的有效数字,正数的补码和原码一样,负数的补码是反码+1。
什么是 >> 操作?
>> 是右移运算符,num >> 1,相当于num除以2
20的二进制是10100,20 >> 1,结果是01010,即10。
与之对比的是 << 左移操作符, num << 1,相当于num乘以2。
20<<1,结果是101000,即40。
什么是 >>> 操作?
>>> 是无符号右移操作符,对于正数而言,>> 和 >>> 效果一样;对负数而言,先要计算其补码,再右移,高位补0。
负数的无符号右移要复杂一些,因为负数在内存中是以补码的形式存在:
-2原码:10000000 00000000 00000000 00000010
-2反码:11111111 11111111 11111111 11111101
-2补码:11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111110 >>>1 即 01111111 11111111 11111111 11111111
所以,-2 >>> 1的结果并不是 -1 或 1 [捂脸],而是 2147483647 !
与之对应的是无符号左移操作符 <<< 。
如果能给您带来帮助,欢迎关注、收藏 [谢谢]
- 上一篇: SpringBoot必须掌握的常用注解!
- 下一篇: Java单向代码执行链配合的动态代码上下文执行
猜你喜欢
- 2025-01-13 Java内存溢出的解决思路
- 2025-01-13 Android应用编程基础第18篇:Java面向对象技术点补
- 2025-01-13 图文详解,史上最详细JVM——字节码指令集
- 2025-01-13 盘点 Java 开发 2020 年发生的几件大事
- 2025-01-13 全网最完整的免费java教程讲义(一)——java配置和安装
- 2025-01-13 这篇 Java IO,讲的实在是太好了
- 2025-01-13 你真的了解JAVA中对象和类、this、super和static关键字吗
- 2025-01-13 Java单向代码执行链配合的动态代码上下文执行
- 2025-01-13 SpringBoot必须掌握的常用注解!
- 2025-01-13 Java IO流详解和常用流的使用
你 发表评论:
欢迎- 07-10动漫人物像|插画 壁纸 头像 签名 素材
- 07-10运动人物|插画 壁纸 头像 签名 素材
- 07-10动漫人物|插画 壁纸 头像 签名 素材
- 07-10神话人物|插画 壁纸 头像 签名 素材
- 07-10日漫人物像|插画 壁纸 头像 签名 素材
- 07-10 日漫人物|插画 壁纸 头像 签名 素材
- 07-10日漫人物风|插画 壁纸 头像 签名 素材
- 07-10日漫人物|插画 壁纸 头像 签名 素材
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)