Java 初学者求助

byte b = 1;
for (int i = 0;i<8;i++){
b = (byte)(b * 2);
System.out.print("byte is:"+b);
这个 为什么输出的结果是
byte is:2byte is:4byte is:8byte is:16byte is:32byte is:64byte is:-128byte is:0
求解释,谢谢啦

你好,给你讲下底层原理吧。
看你这句代码:
b = (byte)(b * 2) ;
因为byte * 2 后得到的类型为int型。要赋值给b需要强制类型转化。
前面的结果都好理解。我们看下-128和0是怎么得到的。
众所周知,java里面的byte是1个字节即8位,int是四个字节。而且byte是有符号类型,即它的取值范围在-2^8到2^8-1即:-128到127。
当b=64时,然后b = (byte)(b*2) ;
此时b = (byte)128 ;
为什么b = -128呢。
看int的128的二进制表示:00000000 00000000 00000000 10000000
转化成byte的二进制为:10000000
我们知道最高位是符号为0表示正数,1表示负数
所以此二进制转化为整数是:-128(二进制转十进制应该会吧)
同理 256的二进制表示为:00000000 00000000 00000001 00000000
转化成byte的二进制为:00000000
所以最后一个值为0。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-07
2, 4, 8, 16, 32, 64, 128, 256
256 超出 255 (byte 8 位, 0---255), 溢出, 但是 b = (byte)(b * 2); 截取了8 位, 所以不报错。

JAVA,小程序,没听懂,求助,大佬帮写一下!
估计你是一个刚接触java的初学者吧,创建工程和类,题目的意思是,首先创建一个工程,工程名为(myproduct),接着在这个工程中创建包(edu.abc.test1)。然后在这个包下定义一个时钟类,名为Clock,设置它的三个成员变量,创建带参构造方法以及题目所说的show()方法,这个类就完成了。接着定义测试类...

请java高手帮忙,解决一个难题呀?心急呀!
1. “文字排版” ,这年头连网上的H*小说如果不好好排版都没人看的,更何况是一堆代码和逻辑请很强的文字呢?2.“语言及文字表达”,在你上面所提的问题中我无法清晰的看出你的问题是什么?在你的内容中首先你表达了求助的意思,然后应该是粘贴了一份其他其他来源的资料,在这两段之间最好有个...

java语言初学者求助设置环境变量中遇到的难题。
方法一:依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量”,弹出Windows的“环境变量”配置卡。在“系统变量”栏下执行三项操作:①新建“Classpath”(如果已有,则直接编辑),设置其值为 .;JDK所在的绝对路径值\\lib (例如 .;D:\\Program Files\\Java\\jdk1.5.0_04)(若值中原来有...

JAVA的学习方法
学习Java 的方法犹如一幅精心绘制的蓝图,指引着初学者从陌生的领域走向编程的殿堂。循序渐进,动手实践,庖丁解牛,活用社区,持之以恒,拥抱变化,这些秘诀将助力你解锁 Java 的无限潜能,在这片浩瀚的编程世界中挥洒自如,成就一番辉煌的事业。

java 新手问 写个类 老有提示
类名不要使用main,这会导致该类的默认构造器与主函数名main相同,将第一句public class main{ 中的main改成任意首字母大写的单词即可. 本回答由提问者推荐 举报| 答案纠错 | 评论 20 0 windzxa 采纳率:34% 来自团队:J_HOME 擅长: JAVA相关 数据库DB Html\/Css JavaScript ...

Java初学者求助!!!
isDigital()属于Character类,在java.lang.*中;更多详情请自己查看API;至于判断是不是数字可以用判异常得出;TextField text;try{ Double dou=Double.valueOf(text.getText());}catch(Exception e){ System.out.println("不是数字");}

【初学者 求助!】JAVA用卡片布局 单选按钮显示不出字
1.JRB = new JRadioButton();你创建 了 这个对象。2.private JRadioButton getJRB() { if (JRB == null) { JRB = new JRadioButton();JRB.setBounds(new Rectangle(61, 211, 598, 23));JRB.setFont(new Font("Dialog", Font.BOLD, 14));JRB.setText("我的单选框!");} return ...

零基础可以学JAVA吗?
开始别玩Oracle,就玩MySQL,玩得差不多再玩Oracle很容易,开始也别用linux,就用windows,就是什么简单就用什么,别自己给自己制造麻烦,简单的学好了,复杂点学学很方便,高精尖的东西对于初学者来说,都是包袱,不是什么利器,是有毒的苹果。 不要就是碰到什么问题,都希望把问题弄的很透彻,因为有些东西不是你现阶段能...

学java必须得去java培训班吗?
学java必须得去java培训班,自学对于初学者有一点难度,java涉及专业知识较多,新手学习起来难以理解。如需学习java推荐选择【达内教育】,该机构为零基础学员专门定制了入门学习内容和学习教程。Java前景如下:1、Web开发:Web开发语言很多,Java是其中之一。Java在开发高访问、高并发、集群化的大型网站方面有...

想比较系统的学习下java,求推荐几本实用的书籍。
陈昊鹏 译 出版社:机械工业出版社(这本书我身边许多人都买了来收藏。。。不错 不过你要是一点基础没有,建议不要看,因为这本书有点难)2《JAVA核心技术卷I:基础知识》作者:(美)昊斯特曼 著,叶乃文,邝劲 筠,杜永萍 译 出版社:机械工业出版社 (这本书比较适合初学者来看)...

相似回答