【发布时间】:2015-05-12 18:37:50
【问题描述】:
所以我试图接受一个 int ex。 3240 并转换为打印 -88 的字节。
final int x = (int) (buffer[bufferIndex++] * 32767.0);
System.out.println("1 " + x);
byteBuffer[i] = (byte) x;
System.out.println("2 " + (byte) x);
System.out.println("3 " + (int) byteBuffer[i]);
我在从字节转换回 int 时遇到问题。我如何取 -88 并再次使其变为 3240?
【问题讨论】:
-
你不能。从
int到byte的转换是有损的。 -
int是 32 位,byte是 8。所以要从一个字节中恢复您的int,您所要做的就是获取该字节的 8 位,并找到将其转换为字节时丢失的 24 位。那么 24 位在哪里呢?我不知道,也许他们从你的电脑上掉到了地板上?
标签: java int type-conversion byte