我将两个整数从Java客户机发送到Python服务器。你知道吗
如何将一个整数映射为0-255之间的4个整数?你知道吗
如何将这4个字节转换回整数??你知道吗
爪哇语:
Socket socket = ((host,port));
//converting intArray to byteArray
int[] intArray = {900, 1200};
ByteBuffer byteBuffer = byteBuffer.allocate(intArray.length*4);
IntBuffer intBuffer = byteBuffer.asIntBuffer();
intBuffer.put(intArray);
byte[] byteArray = byteBuffer.array();
//Sending byteArray via socket to python Server
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.write(byteArray);
Python:
#receiving byteArray from Java
imageDimension = clientsocket.recv(1024)
print(imageDimension)
list = list(imageDimension)
print(list)
output:
b'\x00\x00\x03\x84\x00\x00\x04\xb0'
[0, 0, 3, 132, 0, 0, 4, 176]
在本例中,似乎整数900以某种方式映射到[0,0,3,132]
。这是怎么回事?如何将900字节转换为4字节?你知道吗
在python中如何将[0,0,3,132]
和[0,0,4,176]
转换回900和1200??你知道吗
在二进制中,3和132分别是
00000011
和10000100
。二进制中的900是1110000100
。通过连接3和132的二进制表示,可以得到900。你知道吗可以使用^{} 将字节转换为其他类型。你知道吗
">II"
format string表示八字节的bytes
对象应该被解释为两个四字节整数,具有小的endian字节顺序。你知道吗相关问题 更多 >
编程相关推荐