伏一鸣 2022-03-09 14:35 采纳率: 0%
浏览 44

int a=-1>>2

int a=-1>>;
System.out.println(a);
的运算过程是怎么计算的

  • 写回答

2条回答 默认 最新

  • 关注

    >>是右移操作,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

    评论 编辑记录

报告相同问题?

问题事件

  • 请采纳用户回复 3月9日
  • 创建了问题 3月9日

悬赏问题

  • ¥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 通信专业本科生论文选这两个哪个方向好研究呀