我需要将integer
转换为byte
并在文件中写入字节,但是当我将大于128的数字转换为字节时转换为负数。
我需要使用unsigned char,但我不知道如何。
在c ++中我们写unsigned
但是它在java中是怎么回事?
答案 0 :(得分:5)
默认情况下,Java没有unsigned
类型,但您可以解决它,请参阅Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof)
答案 1 :(得分:2)
Java没有无符号类型。我建议你使用short,因为它可以容纳C和C ++等语言中unsigned char可用的所有值。
您可能会发现this question很有趣。
答案 2 :(得分:1)
写入字节不是问题,无论您使用write(int)
还是writeByte(byte)
都无关紧要,因为无论字节是有符号还是无符号,写入的数据仍然相同。使用read()
读取字节也不是问题,因为它返回无符号字节。只有在读入字节数组时才需要小心,因为在使用时必须记住使用0xFF
屏蔽每个字节。