PHP 的 pack('N', number) 和 C# 中的二进制连接
如何将以下代码转换为 C#?
return pack('N', $number1) . pack('N', $number2);
我已经成功转换了函数的其余部分,但我不知道 pack('N', number)
是如何工作的,也不知道 .
是什么- 运算符在应用于 PHP 中的二进制变量时执行此操作。
How do I convert the following code to C#?
return pack('N', $number1) . pack('N', $number2);
I've managed to convert the rest of the function, but I have no idea how the pack('N', number)
works, nor do I know what the .
-operator does when applied to binary variables in PHP.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 BitConverter 来获取整数的字节表示形式,但您必须翻转它,因为在大多数机器上它是小端字节序。由于我不知道您是否将它们打包到
MemoryStream
或byte[]
中(尽管您应该这样做),所以我将准确地展示这一点。然后您可以将其传输到缓冲区,对于 C# 来说可能是一个
byte[]
。以下是处理 2 个整数的方法:You use
BitConverter
to get thebyte
representation of the integer, but than you have to flip it because on most machines it is little-endian. Since I don't know whether you're packing these into aMemoryStream
orbyte[]
(though you should), I'll just show exactly that.And then you can transfer that to your buffer, which for C# might be a
byte[]
. Here's how you might do 2 integers:pack('N', $number1) 以大端字节顺序将整数 $number1 作为 4 字节二进制字符串返回。
这 ”。”运算符连接字符串。
pack('N', $number1) returns the integer $number1 as a 4-byte binary string in big endian byte order.
The "." operator concatenates strings.