返回
Java位移运算
百科(权威知识源 · 考试范围)
作者:管理员最后更新:2026/9/4 12:51:58审核:管理员

JAVA位移运算

本文参考: https://www.cnblogs.com/chuijingjing/p/9405598.html https://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html

java中有三种移位运算符

<<: 左移运算符,num << 1,相当于num乘以2 >>: 右移运算符,num >> 1,相当于num除以2 >>>: 无符号右移,忽略符号位,空位都以0补齐

<<表示左移,不分正负数,低位补0;  注:以下数据类型默认为byte-8位 左移时不管正负,低位补0 正数:r = 20 << 2   20的二进制补码:0001 0100   向左移动两位后:0101 0000         结果:r = 80

负数:r = -20 << 2   -20 的二进制原码 :1001 0100   -20 的二进制反码 :1110 1011   -20 的二进制补码 :1110 1100   左移两位后的补码:1011 0000         反码:1010 1111         原码:1101 0000         结果:r = -80

>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1; 注:以下数据类型默认为byte-8位 正数:r = 20 >> 2   20的二进制补码:0001 0100   向右移动两位后:0000 0101        结果:r = 5

负数:r = -20 >> 2   -20 的二进制原码 :1001 0100   -20 的二进制反码: 1110 1011   -20 的二进制补码 :1110 1100   右移两位后的补码:1111 1011         反码:1111 1010         原码:1000 0101         结果:r = -5

>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0

正数: r = 20 >>> 2

    的结果与 r = 20 >> 2 相同;

负数: r = -20 >>> 2

注:以下数据类型默认为int 32位

  -20:源码:10000000 00000000 00000000 00010100

    反码:11111111 11111111 11111111 11101011

    补码:11111111 11111111 11111111 11101100

    右移:00111111 11111111 11111111 11111011

    结果:r = 1073741819

考试信息
通过标准满分(错一道即与满分无缘,可把整卷答完看解析;重考不限次数)
时间限制不限时
单卷抽题数10 题
成绩窗口2026-09-14 ~ 2026-09-20
积分学费10 积分
支付方式满分后用积分支付(自主决定)
用积分支付:成绩长期保留,参与排名,积分学费含平台资助池;不支付:成绩保留至窗口截止后清空
积分无充值通道;积分不足 10 时,平台自动发放 100 积分。积分不可提现、不可转让、无现金价值。
排行榜(窗口期最短满分用时 · 前 0 名)
当前窗口(2026-09-14 ~ 2026-09-20)

该窗口暂无满分记录

课程(免费学习 · 共 0 门)

暂无课程

登录后可查看我的出题、测试记录并参加满分考试