2014-10-30 59 views

回答

1

您正在获得-6,因为您对一个字节做了很长的处理,并且long中的值对于该字节来说太大了。尝试将一个字节转换为长整型!

一个字节的范围从-128到127.长从-2^63到2^63-1。你已经因这种方式转换而出现溢出。

0

一个字节只能存储在但是因为Java是最签订256个值,在Java存储从-128到127

你的250值超过127,所以它的周围以负数字节。

将较小的数据类型转换为较大的数据类型的公式是什么?

我觉得你有你的变量向后

y=x; 

你不需要投,因为一个字节将自动展开成一个长

0

byte数据类型有符号1个字节的值可能会从-128到127的值。当您将250l转换为byte时,Java会查看二进制值11111010并将其推到byte中,但由于第一位是1,因此它被解释为负值。如果通过2的补码运行11111010,则得到110或6,因此11111010为-6。

简短的回答:将较大的数据类型转换为较小的数据类型会给您带来难以置信的结果。不要做重大错误检查。