Java中的字节0xFF(11111111)发生了什么变化?

Java中的字节0xFF(11111111)发生了什么变化?,java,sockets,networking,bit,bitwise-operators,Java,Sockets,Networking,Bit,Bitwise Operators,我需要将字节0xFF发送到客户端,但执行此操作时: byte toSend = 0b11111111; // or byte toSend = 0xFF; 发送时出现编译错误,无法将int转换为byte 我要确保发送的字节中所有8位都设置为1。在Java中如何实现这一点?您可以将其转换为字节: byte toSend = (byte)0xFF; 忘了我回答的另一部分吧。我有点睡眠不足。实际上它是-1,表示为11111。但是(byte)0xFF工作正常。您确定它会作为1111111发送到另一端

我需要将字节0xFF发送到客户端,但执行此操作时:

byte toSend = 0b11111111;
// or
byte toSend = 0xFF;
发送时出现编译错误,无法将int转换为byte


我要确保发送的字节中所有8位都设置为1。在Java中如何实现这一点?

您可以将其转换为字节:

byte toSend = (byte)0xFF;

忘了我回答的另一部分吧。我有点睡眠不足。实际上它是-1,表示为11111。但是
(byte)0xFF
工作正常。

您确定它会作为1111111发送到另一端吗?@PeterMel是的。没有强制转换它不能工作的原因是0xFF是255,字节的范围是从-128到127。@Eran我想你的意思是
-1
,而不是
-128
@AlexisC。是的,谢谢。如果睡眠不足,很难直接思考:)byte toSend=-1将完成此任务。0xff是一个整数文本,因此会出现编译错误。此外,字节是有符号的这一事实与此无关;从二进制角度看,11111111是11111111。@fge那么我应该给谁发送11111111???好吧,@Eran给你答案