码迷,mamicode.com
首页 > 编程语言 > 详细

java里int类型转byte类型

时间:2015-02-05 20:21:57      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:

今天在做书上的一个例子的时候, 要使用byte类型,首先我很直接的就写到了byte b = 0XAA, 结果报错, 说从int转换到byte可能会有损失. 我当时就很奇怪, 为什么会出现这种情况呢? 0XAA转化为10进制的byte类型就是-86, 并没有超出-128~127的范围.而且如果直接赋值byte b = -86 ; 也是正常通过.

 

经过网上一位前辈的教导, 现在有了这样的结论:

  1. 在计算机中是没有正负数的区分的, 所有的正负数都是人为规定的
  2. byte类型的最小值-128二进制位1000 0000 , 其实就是-0, 是人为规定的.
  3. java程序中遇到16进制数, 会优先处理成数值, 也就是10进制中的数值部分, 而不是包括符号位的数据

   所以在进行byte b = 0XAA; 这样的赋值的过程中, 0XAA被处理成0 1000 0000 也就是int类型的170 , 然后0 1000 0000转化成byte类型. 由于byte类型放不下符号位在内的全部数据, 所以报错会有精度损失.

//这些都是我通过前辈的指导中理解的, 如果有什么不对的地方, 欢迎指正.^_^

java里int类型转byte类型

标签:

原文地址:http://www.cnblogs.com/iamzhoug37/p/4275754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!