Java short 无符号右移_char类型byte类型或short类型进行无符号右移遇到的神奇问题...
代码
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类型进行无符号右移遇到的神奇问题...相关推荐
- Java中Object转换为int类型或String类型
一.判断Object的类型 下面是截取的一个判断Objec的类型,然后给Excel的单元格设置类型和添加值的操作: obj instanceof 类型 Object obj = entityMap.g ...
- byte类型和char类型
byte字节类型是JAVA中最小的数据类型,它在内存中占8位,取值范围从-128到127, 赋值:byte i = 127; 注:byte型在赋值时,一旦超过127或小于-128,则会产生编译错误. ...
- BYTE类型和int类型相互转换
1 byte不是一种新类型,在C++中byte被定义的是unsigned char类型:但在C#里面byte被定义的是unsigned int类型 2 //int转byte 3 void intToB ...
- GoDaddy域名解析TXT类型或CNAME类型
一.进入godaddy--我的域名--DNS管理 快速接入页面:https://dcc.godaddy.com/manage/wosign.com/dns 将wosign.com改成自己的域名,可以直 ...
- Java学习(4)—— 布尔类型、基本数据类型转换、基本数据类型和String类型的转换
布尔类型 也叫Boolean类型,boolean只允许取true和false. boolean占一个字节. 适用于逻辑运算,流程控制语句. 有默认类型,是false.但是应该声明为成员变量或是静态变量 ...
- Java+包裹类型_java中的包裹类型
包裹类型将一个基本数据类型的数据转换成对象的形式,从而使得它们可以像对象一样参与运算和传递.下表列出了基本数据类型所对应的包裹类型: 基本类型 包裹类型 boolean Boolean c ...
- java赋值运算的类型转换出新的问题_Java中byte、short、char、int、long运算时自动类型转化问题...
-------------------------------------------------------------------------------------------------- ★ ...
- java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
- java中byte数组与int类型的转换(两种方式)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
最新文章
- Win7安装Docker
- ip地址详解,ip地址各种写法的意义,私有局域网搭建(IPv4)
- 内置类和对象锁改变 笔记记录
- 绕过HR破门而入的求职智慧
- datawhale组队学习笔记(2)链表
- SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
- 337. 打家劫舍 III(JavaScript)
- WdatePicker日历控件使用方法
- LR运行负载测试场景-笔记
- 转,python的匿名函数lambda解释及用法
- 程序员眼中的中国传统文化_王阳明《传习录》2
- html5游戏 分数排行榜,热推游戏榜 9月份“微信HTML5游戏排行榜”
- CENTOS下firefox看视频缺少flash插件
- 分享50个漂亮的双屏桌面壁纸资源(下篇)
- Java 读取 Excel 模板,将数据填入Excel表格,后转换为PDF文件(实用)
- 搭建Ubuntu GPU服务器(宿主机篇)
- created()和activated()的区别
- css下拉菜单出现下划线,简单带下划线跟随效果的CSS3下拉菜单特效
- Ebox终于到了,高兴
- isee图片专家批量处理图片大小教程
热门文章
- json怎么读取数据库_如何:使用Json插入数据库并从中读取
- jgroups_JGroups:无需额外基础架构的领导人选举
- 线性搜索或顺序搜索算法在Java中如何工作? 示例教程
- java7和java8切换_仍不切换到Java 8的6个理由
- 使用Open Liberty的开发模式最大程度地缩短周转时间
- javaone_Javaone 2013评论
- adf435编程_动态ADF列车:以编程方式添加列车停靠点
- dom4j和jaxb_JAXB,SAX,DOM性能
- Java 9抢先体验:与JShell的动手实践– Java REPL
- Akka笔记–演员介绍