我需要有关二进制文件

问题描述:

当我使用writeByte(346);二进制文件,然后执行readByte();返回90,而不是346.我困惑和将不胜感激一些帮助帮助。我需要有关二进制文件

+1

是什么让你觉得346适合一个字节 – Ramanlfc

346不适合在一个字节。

所以346口溢出,你会得到346 - 256(2^8)= 90

你至少需要2个字节来存储346


writeByte(int)需要signed int作为参数,所以对于一个字节的范围是从-128到127

+0

哇,真不错。非常感谢。 –

+0

我只试了一次,我写了181,并把它读作-75。看起来,如果你写了一个128以上的数字,它会开始写在底片上。奇怪的。 –

+0

@RaudKelly看到我更新的答案。它还取决于函数如何写入值(我不知道用于Java)。在某些情况下,你可以只例如16位有符号整数的低或高字节结束。无论如何,你必须确保这些值不会溢出。 –