当前位置: 首页 > news >正文

虚拟主机如何搭建网站百度软文推广公司

虚拟主机如何搭建网站,百度软文推广公司,天津建设工程信息王,怎样做免费网站的推广Java 的移位运算符有三种&#xff08;引用《Java编程思想&#xff08;Bruce Eckel&#xff0c; 第4版&#xff09;》&#xff09;&#xff1a; “<<” &#xff1a;左移运算符&#xff0c;按照操作符右侧指定的位数将操作符左边的操作数向左移动&#xff08;在低位补0&a…

Java 的移位运算符有三种(引用《Java编程思想(Bruce Eckel, 第4版)》):

  • “<<” :左移运算符,按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0);
  • “>>” :右移运算符,按照操作符右侧指定的位数将操作符左边的操作数向右移动;
    “有符号”右移操作符使用“符号扩展”:
    • 若符号为正,则在高位插入0;
    • 若符号为负,则在高位插入1。
  • “>>>”:“无符号”右移操作符,它使用“符号扩展”:无论正负都在高位插入0。
     
  • 没有无符号左移

 这些解释并没有说清楚原理,这里的移位运算符其实是对补码进行操作。


这里需要先回顾一下原码、反码、补码的概念(以32-bit为例,第一位为符号位):

  • 正数: 正数的反码、补码都等于原码,如3,原码、反码、补码都是 0000 0000 0000 0000 0000 0000 0000 0011;
  • 负数:以-3为例
    • 原码:1000 0000 0000 0000 0000 0000 0000 0011;
    • 反码:1111 1111 1111 1111 1111 1111 1111 1100;(符号位不变,其余位取反)
    • 补码:1111 1111 1111 1111 1111 1111 1111 1101;(符号位不变,其余位取反后+1)

下面是几个例子:

  • 正数 
int a = 3;
System.out.println(a << 1);     // 输出: 6
System.out.println(a >> 1);	    // 输出: 1

正数的补码跟原码一样,所以3左移一位即:
    0000 0000 0000 0000 0000 0000 0000 0011 ==> 0000 0000 0000 0000 0000 0000 0000 0110
    即 3 ==> 6 (10进制);
3右移一位:
    0000 0000 0000 0000 0000 0000 0000 0011 ==> 0000 0000 0000 0000 0000 0000 0000 0001
    即 3 ==> 1 (10进制);

  • 负数:
int b = -3;
System.out.println(b << 1);     // 输出: -6
System.out.println(b >> 1);	    // 输出: -2

-3的补码是 1111 1111 1111 1111 1111 1111 1111 1101;
-3左移一位:
    补码变为:1111 1111 1111 1111 1111 1111 1111 1010;
    对补码再取补,得到对应的原码。
    对应原码:1000 0000 0000 0000 0000 0000 0000 0110;
    即 -3 ==> -6 (10进制);
-3右移一位:
    补码变为:1111 1111 1111 1111 1111 1111 1111 1110;
    对补码再取补,得到对应的原码。
    对应原码:1000 0000 0000 0000 0000 0000 0000 0010;
    即 -3 ==> -2 (10进制);

  • 无符号右移
int a = 3;
int b = -3;
System.out.println(a >>> 1);    // 输出: 1
System.out.println(b >>> 1);	// 输出: 2147483646 

无符号右移其实就是将符号位也当成一个普通的位,因为正数的符号位为0,所以对正数来说,无符号右移跟有符号右移是一样的。而对负数来说,无符号右移是在高位插入0,而有符号右移是在高位插入0。

  • -3无符号右移1位过程:

    • 原码:1000 0000 0000 0000 0000 0000 0000 0011;
    • 补码:1111 1111 1111 1111 1111 1111 1111 1101;
    • 无符号右移:0111 1111 1111 1111 1111 1111 1111 1110;
    • 再求补转原码:0111 1111 1111 1111 1111 1111 1111 1110;
      注意: 此时在转换成10进制时,仍认为最高位为符号位。而右移后最高位为0,即正数,而对正数再求补仍是这个数。

    即 -3 ==> 2147483646 (10进制)。

http://www.dinnco.com/news/27887.html

相关文章:

  • 做医院网站sem和seo区别与联系
  • 营销型网站建设公司推荐电商培训班一般多少钱一个月
  • 针对网站开发软件 代替手动推广策划方案怎么做
  • th7 wordpress 汉化台州关键词优化平台
  • 六安市城乡建设委员会网站八宿县网站seo优化排名
  • 西安都有哪些公司山东济南seo整站优化公司
  • 番禺 大石网站建设培训师资格证怎么考
  • 哈尔滨网站制作案例自己怎么优化网站
  • 做零食的网站有哪些长春网络优化最好的公司
  • 做打鱼网站犯法不学生个人网页优秀模板
  • 青岛外贸建设网站新乡seo网络推广费用
  • 丽水网站建设报价百度官网地址
  • 北京住总第一开发建设有限公司网站微信指数官网
  • 企业网站建设费用会计分录营销推广计划
  • 响应式设计的网站热搜榜排名前十
  • 建设农家书屋官方网站产品关键词的搜索渠道
  • 仿站西安seo站内优化
  • 南昌网站建设方案维护seo推广岗位职责
  • 整形医院网站建设推广常见的网络营销工具
  • 网站开发教程网网络优化是做啥的
  • 开源企业网站建设系统网络推广竞价外包
  • 网站制作动态转静态怎么做seo搜索优化专员招聘
  • 新网站怎么做seo关键词排名点击工具
  • oa连接到网站的链接怎么做推广资源整合平台
  • 北京建设部网站 信息中心软文发布公司
  • 如何模仿网站模板亚马逊关键词快速优化
  • 宝鸡市城乡建设规划局官方网站驾校推广网络营销方案
  • 赌球网站如何做代理西安关键词网站排名
  • 怎样做自己的微商网站互联网推广引流
  • 做网站需不需要服务器steam交易链接怎么改