【问题标题】:Receive binary 64-bit float from Matlab Simulink on UDP Server in c从 C 中 UDP 服务器上的 Matlab Simulink 接收二进制 64 位浮点数
【发布时间】:2013-06-18 12:43:39
【问题描述】:

我在 C 中的 udp 服务器上收到一个二进制 64 位浮点数。我无法将接收二进制浮点数的 char 数组 buf 转换为数字。有什么想法吗?

rc=recvfrom(s,buf,9,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
if(rc==SOCKET_ERROR) {
  printf("Fehler: recvfrom, fehler code: %d\n",WSAGetLastError());
  system("Pause");
  return 1;
} else {
  printf("%d Bytes empfangen!\n", rc);
  buf[rc]='\0';
}
printf("Empfangene Daten: %s\n",buf);

【问题讨论】:

  • 是的,我想将二进制代码的 buf 转换为十进制数。但我不能使用你的代码。
  • [Linker error] undefined reference to bin2dec' [Linker error] undefined reference to uint64' [Linker error] undefined reference to `typecast' 不知道如何修复它.. 我是 C 新手
  • 我的错。我以为这是 Matlab 代码。
  • 哦不..它在服务器端..但是谢谢
  • 显示更多代码,为什么是 9?,请改用sizeof(buf)

标签: c matlab binary udp


【解决方案1】:

我有解决方案。我发送二进制代码...例如 dezimal 322 ..如果我用 32 位整数发送它,它有 32 位...我将它作为字符接收 ..一个字符长 8 位...对于十进制 322 我reiceve 0 0 1 66... 因为二进制代码是 00000000 00000000 00000001 01000010 每个 Char[3] 代表 0 char[2] 为 0 Char[1] 是 2 而 char[0] 是 66... 每个 Char代表他自己的 8 位十进制数。你明白了吗?

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多