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

做网站的模仿还要去量宽高吗成都丁香人才网官网专区

做网站的模仿还要去量宽高吗,成都丁香人才网官网专区,徐州关键词优化平台,境外电商平台入驻在阅读源码的过程中#xff0c;经常会看到这些符号 #xff0c;#xff0c;#xff0c;这些符号在Java中叫移位运算符#xff0c;在写代码的过程中#xff0c;虽然我们基本上不会去写这些符号#xff0c;但需要明白这些符号的运算原理…在阅读源码的过程中经常会看到这些符号 这些符号在Java中叫移位运算符在写代码的过程中虽然我们基本上不会去写这些符号但需要明白这些符号的运算原理比如HashMap中有以下代码static final int DEFAULT_INITIAL_CAPACITY 1 4;//左移static final int hash(Object key) {int h;return (key null) ? 0 : (h key.hashCode()) ^ (h 16);//无符号右移}上段代码中就包含左移运算符。这篇文章详细说一下这三个符号1、左移运算符先随便定义一个int类型的数int十进制的value 733183670转换成二进制在计算机中的表示如下value 1左移1位左移1位后换算成十进制的值为1466367340刚好是733183670的两倍 有些人在乘2操作时喜欢用左移运算符来替代。value 8左移8位看一下左移8位后变成了十进制的值为-1283541504移动8位后由于首位变成了1也就是说成了负数在使用中要考虑变成负数的情况。根据这个规则左移32位后右边补上32个0值是不是就变成了十进制的0了答案是NO当int类型进行左移操作时左移位数大于等于32位操作时会先求余(%)后再进行左移操作。也就是说左移32位相当于不进行移位操作左移40位相当于左移8位(40%328)。当long类型进行左移操作时long类型在二进制中的体现是64位的因此求余操作的基数也变成了64也就是说左移64位相当于没有移位左移72位相当于左移8位(72%648)写一段代码来测试一下int intValue 733183670;//随意写一个数System.out.println(intValue (intValue));//打印intValueSystem.out.println(intValue左移1位 (intValue 1));//左移1位System.out.println(intValue左移8位 (intValue 8));//左移8位//当int类型左移位数大于等于32位操作时会先求余后再进行移位操作System.out.println(intValue左移32位 (intValue 32));//求余为32%320相当于左移0位(不移位)System.out.println(intValue左移40位 (intValue 40));//求余为40%328相当于左移8位System.out.println(intValue左移64位 (intValue 64));//求余为64%320相当于左移0位(不移位)long longValue 733183670L;System.out.println(longValue (longValue));//打印longValueSystem.out.println(longValue左移1位 (longValue 1));//左移1位System.out.println(longValue左移8位 (longValue 8));//左移8位//当long类型左移位数大于等于64位操作时会先求余后再进行移位操作System.out.println(longValue左移64位 (longValue 64));//求余为64%640相当于左移0位(不移位)System.out.println(longValue左移72位 (longValue 72));//求余为72%648相当于左移8位System.out.println(longValue左移128位 (longValue 128));//求余为128%640相当于左移0位(不移位)看一下结果由于doublefloat在二进制中的表现比较特殊因此不能来进行移位操作报错编译不过如下图注意其它几种整形byteshort移位前会先转换为int类型(32位)再进行移位这里就不写代码测试了大家有兴趣可自行测试。综上所述左移 其实很简单也就是说丢弃左边指定位数右边补0。2、右移运算符还是这个数733183670value 1右移1位右移1位后换算成十进制的值为366591835刚好是733183670的1半 有些人在除2操作时喜欢用右移运算符来替代value 8右移8位看一下写一段代码测试一下int intValue 733183670;//随意写一个数System.out.println(intValue (intValue));//打印intValueSystem.out.println(intValue右移1位 (intValue 1));//右移1位System.out.println(intValue右移8位 (intValue 8));//右移8位//当int类型右移位数大于等于32位操作时会先求余后再进行移位操作System.out.println(intValue右移32位 (intValue 32));//求余为32%320相当于右移0位(不移位)System.out.println(intValue右移40位 (intValue 40));//求余为40%328相当于右移8位System.out.println(intValue右移64位 (intValue 64));//求余为64%320相当于右移0位(不移位)long longValue 733183670L;System.out.println(longValue (longValue));//打印longValueSystem.out.println(longValue右移1位 (longValue 1));//右移1位System.out.println(longValue右移8位 (longValue 8));//右移8位//当long类型右移位数大于等于64位操作时会先求余后再进行移位操作System.out.println(longValue右移64位 (longValue 64));//求余为64%640相当于右移0位(不移位)System.out.println(longValue右移72位 (longValue 72));//求余为72%648相当于右移8位System.out.println(longValue右移128位 (longValue 128));//求余为128%640相当于右移0位(不移位)结果和左移一样int类型移位大于等于32位时long类型大于等于64位时会先做求余处理再位移处理byteshort移位前会先转换为int类型(32位)再进行移位。以上是正数的位移我们再来看看负数的右移运算如图负数intValue-733183670的二进制表现如下图右移8位intValue 8综上所述右移运算符的运算规则也很简单丢弃右边指定位数左边补上符号位。3、无符号右移运算符无符号右移运算符和右移运算符是一样的只不过右移时左边是补上符号位而无符号右移运算符是补上0也就是说对于正数移位来说等同于负数通过此移位运算符能移位成正数。以-7331836708为例来画一下图无符号右移运算符的运算规则也很简单丢弃右边指定位数左边补上0。摘自https://zhuanlan.zhihu.com/p/30108890
http://www.zqtcl.cn/news/363207/

相关文章:

  • 个人网站设计理念自己做简历网站
  • 做网页设计的网站网站流量多少做网盟
  • 上海协会网站建设网站制作培训费用
  • 学会网站建设总结淮北市建市
  • 泉州开发网站的公司有哪些域名不用了需要注销吗
  • 重庆网站推广平台东莞整站优化火速公司
  • 商务网站建设综合实训网站推广效果怎么样
  • 成都品牌网站建设电话项目外包平台接活
  • 教育培训类网站模板上海有几个区最好
  • 公司网站维护怎么维护东莞网站建设it s
  • pc网站怎么做男科医院治疗一次2000元
  • 电子网站建设心得企业查询app排行榜
  • 杭州做网站的科技公司永川做网站的公司
  • 动物自己做的网站网站优化外包公司
  • 企业网站建设的三种方式并举例手机wap网站是什么
  • 做深圳门户网站起什么名字好建设网站对公司起什么作用是什么
  • 长春企业网站设计建设公司资质查询官网
  • 医疗网站前置审批查询免费网站建设可信赖
  • 摄影师个人网站模板宝坻集团网站建设
  • 比较多人用什么网站做推广wordpress数据库表管理系统
  • 网页开发和游戏开发东莞优化怎么做seo
  • 北京网站搭建开发高级网页设计教程
  • 北京南站是中高风险地区吗网站建设上机实验心得
  • 大学生做兼职的网站有哪些免费行情软件网站有哪些
  • 静安手机网站建设常见的网络营销方法及其效果
  • 怎么改版网站湖南长沙地图
  • 中卫网站推广公司如何自创app软件
  • 无棣网站建设电子商务网站设计原理书籍
  • 做t-shirt素材网站企业网站建设结论
  • 唐山公司做网站查询建筑资质的网站