JAVA中int强制转换byte

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中int强制转换byte相关的知识,希望对你有一定的参考价值。

因为在java中,int类型的占4个字节,而byte占1个字节,所以int类型转化为byte类型时会出现位丢失情况,即将int的低8位作为byte类型的值。int型变量的值为257,对应的二进制是100000001,后8位是00000001,第一个0表示符号位,表示正数,所以变量x的值为1。 参考技术A int
是32位
4个字节
8位1字节
int转换成byte
前面的3个字节
即24位
直接砍掉
就剩最后一位
所以
266
——(00000000)(00000000)(00000001)(00001010)
==
0001010
=
1*
2
+
1
*2*2*2
=
10
最开始的0
表示是正数
如果是1表示负数
还要先按位取反再加1
然后才能算出来表示的数值

java数据类型转换之int,byte

	   直接看以下的运算:
public class TestConvert{
	public  static void main(String []args){
		byte b1=67;
		byte b2=89;
		byte b=(byte)(b1+b2);//系统强制转换成int型运算。须要强制转换符
		
		System.out.println(b);
		
		}
}
分析:byte类型的存储空间为1字节,范围为-128~127;int类型的存储空间为4字节;

             byte b1= 67=01000011;//符号位为正

             byte b2= 89=01011001;//符号位为正

               01000011

     +        01011001

----------------------------------

              10011100(超出表示范围上限。符号位为1,表示负数)

对10011100取反01100011并加1->01100100

               即-(64+32+4)=-100

       这里主要涉及到十进制到二进制的转换,补码,反码!

       这是个人的思路,假设有错误的地方还请雅正!

       

以上是关于JAVA中int强制转换byte的主要内容,如果未能解决你的问题,请参考以下文章

java中byte[]转换成int

java强制转换byte类型超出范围是怎么计算的?

int类型和byte类型的强制类型转换

JAVA数据类型及其强制转换

java中int如何转换byte

强制类型转换(Java)