我一直致力于一个项目,我需要传输大量的二进制数据,有些是Structs,enums,list等,有些是纯二进制数据,我正在尝试制定一个策略来处理问题时在64位编译和32位编译之间传输数据。
目前我将程序集标记为仅针对32位以避免此问题,但我想通过定位Any来打开并使用64位/ 32位。
我知道我“可以”使用序列化,但这会为传输增加相当多的额外数据,并且由于这些传输可以通过VPN等传输,因此决定不使用纯.Net序列化,因为增加了额外的开销
因此,当您执行此过程时,最好是:
答案 0 :(得分:1)
.Net保证Int32始终为32位:
Int32值类型表示已签名 值为整数的整数 负2,147,483,648到 正面2,147,483,647。
对于int
类型,System.Int32
只是an alias。对于.Net中的其他值类型(字节,短,长等)也是如此。
但是如果你想要证明,这是输出:
Console.WriteLine(int.MaxValue);
Console.WriteLine(sizeof(int));
在64位Windows Server 2008下的我的计算机上运行,目标是x64:
2147483647
4