int a=-1>>;
System.out.println(a);
的运算过程是怎么计算的
2条回答 默认 最新
- 技术专家团-小桥流水 2022-03-09 14:46关注
>>是右移操作,a=-1>>2是先将-1右移2位,然后将移位后的数据赋值给a。
移位操作是按照二进制码的方式进行的。
-1的二进制码是1的二进制码取反+1。
1的二进制:0x 0000 0000 0000 0001 (以2个字节为例,4个字节是一样的,前面补0就是了)
-1的二进制:0x1111 1111 1111 1111
负数右移的时候,在二进制码的左侧补1,所以-1右移2位后的二进制是:
0x1111 1111 1111 1111
值仍然是-1,所以a的值就等于 -1解决 2无用
悬赏问题
- ¥15 上传图片时提交的存储类型
- ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
- ¥15 VB.NET如何绘制倾斜的椭圆
- ¥15 在rhel8中安装qemu-kvm时遇到“cannot initialize crypto:unable to initialize gcrypt“报错”
- ¥15 arbotix没有/cmd_vel话题
- ¥15 paddle库安装时报错提示需要安装common、dual等库,安装了上面的库以后还是显示报错未安装,要怎么办呀?
- ¥20 找能定制Python脚本的
- ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
- ¥15 用C语言怎么判断字符串的输入是否符合设定?
- ¥15 通信专业本科生论文选这两个哪个方向好研究呀