⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bits.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace NCindy.Buffer
{
    using NCindy;
    using System;

    public static class Bits
    {
        private const byte BITS_OF_BYTE = 8;
        private const int LOW_16BIT_MASK = 0xff;

        public static int DecodeInt(AbstractBuffer buffer, int index)
        {
            byte num;
            byte num2;
            byte num3;
            byte num4;
            if (buffer.BigEndian)
            {
                num = buffer.InternalGet(index);
                num2 = buffer.InternalGet(index + 1);
                num3 = buffer.InternalGet(index + 2);
                num4 = buffer.InternalGet(index + 3);
            }
            else
            {
                num = buffer.InternalGet(index + 3);
                num2 = buffer.InternalGet(index + 2);
                num3 = buffer.InternalGet(index + 1);
                num4 = buffer.InternalGet(index);
            }
            return (((((num & 0xff) << 0x18) | ((num2 & 0xff) << 0x10)) | ((num3 & 0xff) << 8)) | (num4 & 0xff));
        }

        public static long DecodeLong(AbstractBuffer buffer, int index)
        {
            byte num;
            byte num2;
            byte num3;
            byte num4;
            byte num5;
            byte num6;
            byte num7;
            byte num8;
            if (buffer.BigEndian)
            {
                num = buffer.InternalGet(index);
                num2 = buffer.InternalGet(index + 1);
                num3 = buffer.InternalGet(index + 2);
                num4 = buffer.InternalGet(index + 3);
                num5 = buffer.InternalGet(index + 4);
                num6 = buffer.InternalGet(index + 5);
                num7 = buffer.InternalGet(index + 6);
                num8 = buffer.InternalGet(index + 7);
            }
            else
            {
                num = buffer.InternalGet(index + 7);
                num2 = buffer.InternalGet(index + 6);
                num3 = buffer.InternalGet(index + 5);
                num4 = buffer.InternalGet(index + 4);
                num5 = buffer.InternalGet(index + 3);
                num6 = buffer.InternalGet(index + 2);
                num7 = buffer.InternalGet(index + 1);
                num8 = buffer.InternalGet(index);
            }
            return (long) (((((((((num & 0xff) << 0x38) | ((num2 & 0xff) << 0x30)) | ((num3 & 0xff) << 40)) | ((num4 & 0xff) << 0x20)) | ((num5 & 0xff) << 0x18)) | ((num6 & 0xff) << 0x10)) | ((num7 & 0xff) << 8)) | (num8 & 0xff));
        }

        public static short DecodeShort(AbstractBuffer buffer, int index)
        {
            byte num;
            byte num2;
            if (buffer.BigEndian)
            {
                num = buffer.InternalGet(index);
                num2 = buffer.InternalGet(index + 1);
            }
            else
            {
                num = buffer.InternalGet(index + 1);
                num2 = buffer.InternalGet(index);
            }
            return (short) ((num << 8) | (num2 & 0xff));
        }

        public static IBuffer EncodeInt(AbstractBuffer buffer, int index, int intValue)
        {
            byte byteValue;
            byte num2;
            byte num3;
            byte num4;
            if (buffer.BigEndian)
            {
                byteValue = (byte) (intValue >> 0x18);
                num2 = (byte) (intValue >> 0x10);
                num3 = (byte) (intValue >> 8);
                num4 = (byte) intValue;
            }
            else
            {
                byteValue = (byte) intValue;
                num2 = (byte) (intValue >> 8);
                num3 = (byte) (intValue >> 0x10);
                num4 = (byte) (intValue >> 0x18);
            }
            buffer.InternalPut(index, byteValue);
            buffer.InternalPut(index + 1, num2);
            buffer.InternalPut(index + 2, num3);
            buffer.InternalPut(index + 3, num4);
            return buffer;
        }

        public static IBuffer EncodeLong(AbstractBuffer buffer, int index, long longValue)
        {
            byte byteValue;
            byte num2;
            byte num3;
            byte num4;
            byte num5;
            byte num6;
            byte num7;
            byte num8;
            if (buffer.BigEndian)
            {
                byteValue = (byte) (longValue >> 0x38);
                num2 = (byte) (longValue >> 0x30);
                num3 = (byte) (longValue >> 40);
                num4 = (byte) (longValue >> 0x20);
                num5 = (byte) (longValue >> 0x18);
                num6 = (byte) (longValue >> 0x10);
                num7 = (byte) (longValue >> 8);
                num8 = (byte) longValue;
            }
            else
            {
                byteValue = (byte) longValue;
                num2 = (byte) (longValue >> 8);
                num3 = (byte) (longValue >> 0x10);
                num4 = (byte) (longValue >> 0x18);
                num5 = (byte) (longValue >> 0x20);
                num6 = (byte) (longValue >> 40);
                num7 = (byte) (longValue >> 0x30);
                num8 = (byte) (longValue >> 0x38);
            }
            buffer.InternalPut(index, byteValue);
            buffer.InternalPut(index + 1, num2);
            buffer.InternalPut(index + 2, num3);
            buffer.InternalPut(index + 3, num4);
            buffer.InternalPut(index + 4, num5);
            buffer.InternalPut(index + 5, num6);
            buffer.InternalPut(index + 6, num7);
            buffer.InternalPut(index + 7, num8);
            return buffer;
        }

        public static IBuffer EncodeShort(AbstractBuffer buffer, int index, short shortValue)
        {
            byte byteValue;
            byte num2;
            if (buffer.BigEndian)
            {
                byteValue = (byte) (shortValue >> 8);
                num2 = (byte) shortValue;
            }
            else
            {
                byteValue = (byte) shortValue;
                num2 = (byte) (shortValue >> 8);
            }
            buffer.InternalPut(index, byteValue);
            buffer.InternalPut(index + 1, num2);
            return buffer;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -