黑马程序员----java学习笔记之由int转换成byte

原创 2013年12月05日 10:59:45
------- android培训java培训、期待与您交流! ----------

          1、java程序中默认的整数数值的数据类型为int,默认的小数点数值的数据类型为double。

        

           

           

                1)和2)都是把一个int型的数值赋值给一个byte型,但1)并没有提示转换类型错误。这是因为在编译器遇到int型转换成byte型时,先对数值进行判断,如果该数值在byte型数据表示的范围之内则不报错,否则则报错!下面再看一个例子。

               

                为什么同样是int型的数据同样在byte数值范围内又同样需要由int转换成byte,第一行的程序没报错,第二行的程序却报了错呢?对比可知,第一行的等号右边是固定数值而第二行的等号右边含有变量,所以:

                综上所述,编译器在遇到需要由int转换成byte时,首先判断的应该是该int是固定数值,还是含有变量的代数式(不管是含+、-、*、/等等的代数式)。如果是前者就继续判断该固定数值是不是在byte的数值范围内,在就可变换,不在就报错;如果是后者,那就直接报错。

              可能你还会有疑问,为什么含有变量的代数式在遇到由int转变成byte时报错,固定数值就不报错?我个人认为,因为代数式里含有变量,所以它的运算结果就是不确定的。在含有该代数式的代码行前面的代码里,变量可能会有不同的数据。有的数据可以使该代数式的运算结果在byte的数值范围内,而其它的则不能。就想4)中b+2的结果是5在byte的数值范围内,但如果b的值不是3,是127(因为b是byte变量,所以你可以给它赋127的),那么b+2的运算结果就不在byte的数值范围内了!那么此时该含有代数式的代码行就不是正确的了,所以编译器不会通过,会报错!

       

Java中的Byte转为无符号的Integer

Java的Byte都是有符号的(singed),而Byte又是8位的,如何转为无符号( unsigned)的呢?   素材: byte   a=11010110 (singed : -...
  • a9529lty
  • a9529lty
  • 2012年02月14日 15:21
  • 9521

Java中int与byte数组转换详解

1、与运算符的理解(&):            参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即 0&0=0;0&1=0;1&0=0;1&1...
  • zmx729618
  • zmx729618
  • 2016年06月28日 14:33
  • 8837

java byte转int 互相转换原理详解

java byte转int 互相转换原理详解 原码,反码,补码概念
  • wojiuai2093
  • wojiuai2093
  • 2016年03月02日 14:56
  • 4220

int 与 byte 的强制类型转换

int占4个字节,32位 byte占1个字节,8位 所以强转时会截断前24位在内存中表示形式( 注意java中是以补码表示一个数,所以表示形式是补码,不是原码! ): int a = 3; ...
  • github_34606293
  • github_34606293
  • 2017年04月27日 09:03
  • 511

Java 将byte[] 与int类型互相转换

在使用TCP socket进行编写文件传输协议的时候,找Java中,可以使用BufferedOutputStream 和 BufferedInputStream来缓冲输出和输入的数据,但是,这里有个问...
  • shengno1
  • shengno1
  • 2014年04月30日 21:44
  • 1606

java中int与byte数组互转代码详细分析

在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况。下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式。 众所周知,int类型在内存中占4...
  • tang9140
  • tang9140
  • 2015年02月02日 09:01
  • 5515

java int转byte出现负数 byte转int的解决

1.java中  byte转int (特别注意) byte b=0x01; int a=0xff&b;  //正确 2. java中 int转byte int a=0x01; ...
  • chenhao0568
  • chenhao0568
  • 2017年05月29日 11:11
  • 938

黑马程序员——java基础学习笔记——第一天

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.常见dos命令 dir:列出当前目录下的文件以及文件夹md:创建目录rd:删除目录cd:...
  • baidu_26484755
  • baidu_26484755
  • 2015年03月11日 20:45
  • 357

c# int数组转byte数组

c# int[]转byte[]  byte[]转int[] 数据互转 可以扩展成其他的数组转byte int[] intArray = new int[3]; ...
  • DOwnstairs
  • DOwnstairs
  • 2017年01月15日 12:41
  • 512

java中的二进制int与byte互转以及&0xff的作用

1.      按位与&  :两位全位1,结果才为1; 0&0=0;  0&1=0  ; 1&1=1 如:51 &5 =0011 0011 & 0000 0101=0000 0001 = 1 作用:...
  • weixin_33547926
  • weixin_33547926
  • 2016年08月31日 15:43
  • 2307
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员----java学习笔记之由int转换成byte
举报原因:
原因补充:

(最多只允许输入30个字)