2017-01-23 73 views
0

如何byte b= (byte)400是一个有效的陈述,但400超出范围?我想知道java用来将400带入字节范围内的算法。java使用什么算法将int转换为byte?

+1

您可以在Oracle教程的所有细节:转换和促销#变窄(http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1 .3)(30秒谷歌搜索虽然) – BackSlash

回答

4

它需要400个二进制表示中最不重要的8个字节,并将它们分配给byte变量。

int 400二进制表示:

00000000000000000000000110010000 
         -------- 

服用时低8位,你会得到10010000,这是-112二进制表示。