代码

package com.ggp.test.Third;

/**

* @Author:ggp

* @Date:2019/7/27 17 23

* @Description:

*/

public class URShift {

public static void main(String[] args) {

byte b = -1;

System.out.println(Integer.toBinaryString(b));

System.out.println(Integer.toBinaryString(b>>>10));

System.out.println(b>>>10);

byte c = -1;

System.out.println(Integer.toBinaryString(c));

c>>>=10;

System.out.println(Integer.toBinaryString(c));

System.out.println(c);

}

}

运行结果

11111111111111111111111111111111

1111111111111111111111

4194303

11111111111111111111111111111111

11111111111111111111111111111111

-1

Process finished with exit code 0

刚开始我很不理解为什么会有不同的输出,这两种的输入区别在哪里?

通过仔细观察我弄懂了原因。

第一种和第二种相比,第二种其实多了一步转类型。

首先short和byte在java中其实是以32字节的方式存储的,也就是相当于一个int

第一种,b>>>10

首先b会转成int然后右移10位变成

11111111 11111111 11111111 11111111  》》 00000000 00111111 11111111 11111111

因为本身就是int 打印结果就是11111 11111111 11111111

第二种,b>>>10之后还会进行转型

11111111 11111111 11111111 11111111  》》 00000000 00111111 11111111 11111111 》》11111111 11111111

打印的时候在转int  》》11111111 11111111 11111111 11111111

Java short 无符号右移_char类型byte类型或short类型进行无符号右移遇到的神奇问题...相关推荐

  1. Java中Object转换为int类型或String类型

    一.判断Object的类型 下面是截取的一个判断Objec的类型,然后给Excel的单元格设置类型和添加值的操作: obj instanceof 类型 Object obj = entityMap.g ...

  2. byte类型和char类型

    byte字节类型是JAVA中最小的数据类型,它在内存中占8位,取值范围从-128到127, 赋值:byte i = 127; 注:byte型在赋值时,一旦超过127或小于-128,则会产生编译错误. ...

  3. BYTE类型和int类型相互转换

    1 byte不是一种新类型,在C++中byte被定义的是unsigned char类型:但在C#里面byte被定义的是unsigned int类型 2 //int转byte 3 void intToB ...

  4. GoDaddy域名解析TXT类型或CNAME类型

    一.进入godaddy--我的域名--DNS管理 快速接入页面:https://dcc.godaddy.com/manage/wosign.com/dns 将wosign.com改成自己的域名,可以直 ...

  5. Java学习(4)—— 布尔类型、基本数据类型转换、基本数据类型和String类型的转换

    布尔类型 也叫Boolean类型,boolean只允许取true和false. boolean占一个字节. 适用于逻辑运算,流程控制语句. 有默认类型,是false.但是应该声明为成员变量或是静态变量 ...

  6. Java+包裹类型_java中的包裹类型

    包裹类型将一个基本数据类型的数据转换成对象的形式,从而使得它们可以像对象一样参与运算和传递.下表列出了基本数据类型所对应的包裹类型: 基本类型    包裹类型 boolean    Boolean c ...

  7. java赋值运算的类型转换出新的问题_Java中byte、short、char、int、long运算时自动类型转化问题...

    -------------------------------------------------------------------------------------------------- ★ ...

  8. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  9. java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

最新文章

  1. Win7安装Docker
  2. ip地址详解,ip地址各种写法的意义,私有局域网搭建(IPv4)
  3. 内置类和对象锁改变 笔记记录
  4. 绕过HR破门而入的求职智慧
  5. datawhale组队学习笔记(2)链表
  6. SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
  7. 337. 打家劫舍 III(JavaScript)
  8. WdatePicker日历控件使用方法
  9. LR运行负载测试场景-笔记
  10. 转,python的匿名函数lambda解释及用法
  11. 程序员眼中的中国传统文化_王阳明《传习录》2
  12. html5游戏 分数排行榜,热推游戏榜 9月份“微信HTML5游戏排行榜”
  13. CENTOS下firefox看视频缺少flash插件
  14. 分享50个漂亮的双屏桌面壁纸资源(下篇)
  15. Java 读取 Excel 模板,将数据填入Excel表格,后转换为PDF文件(实用)
  16. 搭建Ubuntu GPU服务器(宿主机篇)
  17. created()和activated()的区别
  18. css下拉菜单出现下划线,简单带下划线跟随效果的CSS3下拉菜单特效
  19. Ebox终于到了,高兴
  20. isee图片专家批量处理图片大小教程

热门文章

  1. json怎么读取数据库_如何:使用Json插入数据库并从中读取
  2. jgroups_JGroups:无需额外基础架构的领导人选举
  3. 线性搜索或顺序搜索算法在Java中如何工作? 示例教程
  4. java7和java8切换_仍不切换到Java 8的6个理由
  5. 使用Open Liberty的开发模式最大程度地缩短周转时间
  6. javaone_Javaone 2013评论
  7. adf435编程_动态ADF列车:以编程方式添加列车停靠点
  8. dom4j和jaxb_JAXB,SAX,DOM性能
  9. Java 9抢先体验:与JShell的动手实践– Java REPL
  10. Akka笔记–演员介绍