![](/img/trans.png)
[英]Fastest and most efficient conversion of a byte array to a 29 bit integer in Java
[英]Conversion of integer to byte in java
参见Herbert Schildt撰写的“ Java完整参考”第七版的第79页。 作者说:“如果整数的值大于一个字节的范围,则会对字节的范围取模(整数除以该整数的余数)”。
java中字节的范围是-128到127。因此,适合字节的最大值是128。如果将整数值分配给字节,如下所示:
int i = 257;
byte b;
b = (byte) i;
由于257跨越范围127,因此应将257%127 = 3存储在'b'中。 但是我得到的输出是1而不是3。我在理解这个概念时哪里出错了?
只需考虑数字的二进制表示形式:
257 is represented in binary as 00000000 00000000 00000001 00000001
当将此32位int
转换为8位byte
,仅保留最低的8位:
00000001
这是1
257 = 00000000 000000000 00000001 00000001
以位为单位,一个字节仅由8位组成...
结果,仅低8位被存储,输出为1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.