java - Java将负浮点数转换为字节数组
问题描述
我目前正在开发 2D MMORPG。所以,现在我想处理坐标,但我有一个问题。我需要将负浮点(坐标)转换为字节,通过套接字发送到服务器,然后再转换回坐标(浮点)。我被困在这部分。
发送到服务器:
out.writeByte(packettype);
out.writeFloat(x);
out.writeFloat(y);
out.flush();
转换回来:
float x,y;
byte[] xA = new byte[4];
byte[] yA = new byte[4];
for(int i=1;i<5;i++){
xA[i-1] = (byte) b[i];
}
for(int i=5;i<9;i++){
yA[i-5] = (byte) b[i];
}
x = ByteBuffer.wrap(xA).order(ByteOrder.BIG_ENDIAN).getFloat();
y = ByteBuffer.wrap(yA).order(ByteOrder.BIG_ENDIAN).getFloat();
如果我的坐标低于 0,我会得到如下值:
X---------Y
2,3964 3854642970624
2,3964 2857584033792
2,3964 4395458363392
提前致谢!
解决方案
发送到服务器:
out.writeByte(packettype);
out.writeFloat(x);
out.writeFloat(y);
out.flush();
从客户端接收:
byte packettype = in.readByte();
float x = in,readFloat();
float y = in.readFloat();
... 哪里in
是DataInputStream
.
推荐阅读
- javascript - 如何在数据表中添加禁用列
- server - ejabberd 19.09 安装在 Windows 10 上,管理页面给出 404 页面未找到
- javascript - 如何使标题元素的宽度缓慢向左移动
- swift - UICollectionViewCell 阴影和圆角不起作用
- powerapps - 从 PowerApps 创建页面时的 OneNote 嵌套列表问题
- flutter - 检查表单条目是否为 10 的倍数
- graphics - 未解析的外部符号“类 Fl_Graphics_Driver * fl_graphics_driver”
- javascript - 如何在javascript中将文本输入变量添加到URL
- css - 我应该如何在我的项目中构建 sass 和 css
- python - 如何使用物理按钮在热敏打印机上打印内容?