mirror of
https://github.com/Dongyifengs/AssetStudio-Genshin-MoYi.git
synced 2025-05-06 11:29:18 +08:00
80 lines
2.5 KiB
C#
80 lines
2.5 KiB
C#
namespace AssetStudio
|
|
{
|
|
public static class PrimitiveExtensions
|
|
{
|
|
public static int ParseDigit(this char _this)
|
|
{
|
|
return _this - '0';
|
|
}
|
|
|
|
public static string ToHexString(this byte _this)
|
|
{
|
|
return _this.ToString("x2");
|
|
}
|
|
|
|
public static string ToHexString(this short _this)
|
|
{
|
|
ushort value = unchecked((ushort)_this);
|
|
return ToHexString(value);
|
|
}
|
|
|
|
public static string ToHexString(this ushort _this)
|
|
{
|
|
ushort reverse = unchecked((ushort)(((0xFF00 & _this) >> 8) | ((0x00FF & _this) << 8)));
|
|
return reverse.ToString("x4");
|
|
}
|
|
|
|
public static string ToHexString(this int _this)
|
|
{
|
|
uint value = unchecked((uint)_this);
|
|
return ToHexString(value);
|
|
}
|
|
|
|
public static string ToHexString(this uint _this)
|
|
{
|
|
uint reverse = ((0xFF000000 & _this) >> 24) | ((0x00FF0000 & _this) >> 8) | ((0x0000FF00 & _this) << 8) | ((0x000000FF & _this) << 24);
|
|
return reverse.ToString("x8");
|
|
}
|
|
|
|
public static string ToHexString(this long _this)
|
|
{
|
|
ulong value = unchecked((ulong)_this);
|
|
return ToHexString(value);
|
|
}
|
|
|
|
public static string ToHexString(this ulong _this)
|
|
{
|
|
ulong reverse = (_this & 0x00000000000000FFUL) << 56 | (_this & 0x000000000000FF00UL) << 40 |
|
|
(_this & 0x0000000000FF0000UL) << 24 | (_this & 0x00000000FF000000UL) << 8 |
|
|
(_this & 0x000000FF00000000UL) >> 8 | (_this & 0x0000FF0000000000UL) >> 24 |
|
|
(_this & 0x00FF000000000000UL) >> 40 | (_this & 0xFF00000000000000UL) >> 56;
|
|
return reverse.ToString("x16");
|
|
}
|
|
|
|
public static string ToHexString(this float _this)
|
|
{
|
|
uint value = BitConverterExtensions.ToUInt32(_this);
|
|
return ToHexString(value);
|
|
}
|
|
|
|
public static string ToHexString(this double _this)
|
|
{
|
|
ulong value = BitConverterExtensions.ToUInt64(_this);
|
|
return ToHexString(value);
|
|
}
|
|
|
|
public static int ToClosestInt(this long _this)
|
|
{
|
|
if (_this > int.MaxValue)
|
|
{
|
|
return int.MaxValue;
|
|
}
|
|
if (_this < int.MinValue)
|
|
{
|
|
return int.MinValue;
|
|
}
|
|
return unchecked((int)_this);
|
|
}
|
|
}
|
|
}
|