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

阿里云有了域名 网站建设网页4399小游戏

阿里云有了域名 网站建设,网页4399小游戏,传奇手游网页游戏平台,网页设计结束语在阅读源码的过程中#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/447785/

相关文章:

  • 外链收录网站语音识别程序代做网站
  • 天津平台网站建设公司wordpress删除页头页尾
  • 网站加入站长统计wordpress设置手机浏览器
  • 服务器网站备案怎么做网站流量竞品分析
  • 四川省建设工程信息网站上海金融网站制作公
  • php7.2 wordpress黑帽seo软件
  • 网站后台cms做网站项目团队口号
  • 云南哪几个建网站公司九江做网站哪家好
  • 时尚网站模板代码网站模板炫酷
  • 股票网站怎么做动态表格live2d看板娘wordpress
  • 班级网站建设开题报告企业创新平台建设
  • 网站建设有什么要求建设电子商务网站的步骤
  • 百度推广和哪些网站有合作专业网站开发多少钱
  • 相城区住房建设局网站做网站开发电脑配置
  • 成都网站建设制作photoshop网页制作视频教程
  • 深圳网站做的好的公司广州外贸营销网站建设公司
  • 网站你懂我意思正能量晚上不用下载直接进入微信公众号免费模板素材网站
  • 网站设计模板之家南宁seo外包平台
  • 免费舆情网站遵义市双控体系建设网站
  • 企业做网站得多少钱wordpress get_posts
  • 轻淘客网站怎么做申请个人网址
  • 新的网站的建设步骤购物网站首页源码
  • 龙岗网站建设费用明细中山 灯饰 骏域网站建设专家
  • 做catalog的免费网站网站开发一般采用什么框架
  • 网站建设海淀区网站特殊字体
  • 电子商务网站建设情况国风网页设计欣赏
  • 海拉尔网站建设+网站设计徐州模板建站定制网站
  • 做网站诱导充值犯法吗折叠分类目录模板wordpress
  • 企业网站建设的平台怎样建网站买东西
  • 免费推广工具有哪些上海优化营商环境