java - 打破char中的浮点值并在tcp上传输并使用java程序读取

标签 java c

我使用此 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/

相关文章:

java - ThreadPoolTask​​Executor 抛出 RejectedExecutionException

java - Spring Services中是否允许有实例变量?

c - "for_each_possible_cpu"在cpufreq.c文件中是如何展开的?

c - 为什么 GCC 在使用三字母时发出警告,而在使用二字母时却不发出警告?

c - C语言中如何将数组中的元素移动到不同的索引?

java - Hibernate:尝试保留对象图时出现 java.lang.StackOverflowError

Java 同步和可重入锁定

java - 使用可用的 System.console 启动另一个进程

c - TTF/OTF 头表中的 checkSumAdjustment 有何用途?

c - 为什么“恢复”、“最小化”、“最大化”通知在不应该发送的情况下都被发送了?