我使用此 C 代码使用 TCP/IP 从微 Controller 转换和传输 float 据。在这里,我将 float 分解为四个字符值,效果很好。但我需要其等效的 java 代码才能再次在服务器端获取浮点值。
我是java新手。所以请帮忙。
/**************************************************** **********************************/
unsigned char outbox[5];
void breakDown(void)
{
int index=0;
float member=-600.231;
unsigned long d = *(unsigned long *)&member;
outbox[0] = d & 0x00FF;
outbox[1] = (d & 0xFF00) >> 8;
outbox[2] = (d & 0xFF0000) >> 16;
outbox[3] = (d & 0xFF000000) >> 24;
}
void buildUp(void)
{
unsigned long d;
unsigned index;
d = ((long)outbox[3] << 24);
d|= ((long)outbox[2] << 16);
d|= ((long)outbox[1] << 8);
d|= ((long)outbox[0]);
float member = *(float *)&d;
printf("Float output=%f\n\n",member);
}
最佳答案
java.io.DataInputStream.readFloat()调用了java.lang.Float.intBitsToFloat(int bits),你可以尝试一下。 (先阅读api文档)
关于java - 打破char中的浮点值并在tcp上传输并使用java程序读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47974137/