gpt4 book ai didi

c# - 8 字节数组返回长(C# 到 C++)

转载 作者:行者123 更新时间:2023-11-30 04:00:52 25 4
gpt4 key购买 nike

我正在使用 C# 将 long 转换为 8 槽字节数组

Byte[] Data = BitConverter.GetBytes(data.LongLength);

例如,如果 data.LongLenght 是 172085,我得到以下数组 { 53,160,2,0,0,0,0,0 }但是在我将它发送到我的 c++ 服务器之后,我想再次让它变长。

我试过了,但没有成功......

long fileLenght = 0;
for( int i=0;i < 8; ++i)
fileLenght = (fileLenght << 8) + Data[i];

最佳答案

每当您通过网络发送数据时,您必须注意endianness

在您的情况下,从字节数组重新创建 long 的正确方法似乎是从右到左重建它:

long fileLength = 0;
for( int i=7; i >= 0; i--)
fileLength = (fileLength << 8) + Data[i];

但情况并非总是如此。根据端点的硬件和操作系统,以及您使用的网络传输协议(protocol),您的数据可能采用大端或小端格式,接收端可能采用小端或大端格式。

关于c# - 8 字节数组返回长(C# 到 C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26066677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com