本文整理汇总了C#中System.UInt32.LittleEndian方法的典型用法代码示例。如果您正苦于以下问题:C# UInt32.LittleEndian方法的具体用法?C# UInt32.LittleEndian怎么用?C# UInt32.LittleEndian使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.UInt32
的用法示例。
在下文中一共展示了UInt32.LittleEndian方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VarInt
/// <summary>
/// Encoded an integer to save space.
/// </summary>
/// <remarks>
/// Integer can be encoded depending on the represented value to save space. Variable length integers always precede
/// an array/vector of a type of data that may vary in length. Longer numbers are encoded in little endian.
/// </remarks>
/// <specification>https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer</specification>
/// <example>
/// nodejs: https://c9.io/raistlinthewiz/bitcoin-coinbase-varint-nodejs
/// </example>
/// <returns></returns>
public static byte[] VarInt(UInt32 value)
{
if (value < 0xfd)
return new[] { (byte)value };
byte[] result;
using (var stream = new MemoryStream())
{
if (value < 0xffff)
{
stream.WriteValueU8(0xfd);
stream.WriteValueU16(((UInt16)value).LittleEndian());
}
else if (value < 0xffffffff)
{
stream.WriteValueU8(0xfe);
stream.WriteValueU32(value.LittleEndian());
}
else
{
stream.WriteValueU8(0xff);
stream.WriteValueU16(((UInt16)value).LittleEndian());
}
result = stream.ToArray();
}
return result;
}