misc.cpp

来自「各种加密算法的源代码」· C++ 代码 · 共 53 行

CPP
53
字号
#include <memory.h>
#include "misc.h"

void xorbuf(byte *buf, const byte *mask, unsigned int count)
{
    while (count--)
        *buf++ ^= *mask++;
}

void byteReverse(word16 *out, const word16 *in, unsigned int i)
{
    i >>= 1;
    while (i--)
        out[i] = (in[i] << 8) | (in[i] >> 8);
}

void byteReverse(word32 *out, const word32 *in, unsigned int byteCount)
{
    word32 value;
    byteCount >>= 2;
    while( byteCount-- )
    {
        value = *in++;
        value = ( ( value & 0xFF00FF00L ) >> 8 ) |
                ( ( value & 0x00FF00FFL ) << 8 );
        *out++ = ( value << 16 ) | ( value >> 16 );
    }
}

int BytePrecision(unsigned long value)
{
    for (unsigned int i=sizeof(value); i; --i)
        if (value >> (i-1)*8)
            break;

    return i;
}

int BitPrecision(unsigned long value)
{
    for (unsigned int i=8*sizeof(value); i; i--)
        if (value >> (i-1))
            break;

    return i;
}

unsigned long Crop(unsigned long value, int size)
{
    return (value & ((1L << size) - 1));
}

⌨️ 快捷键说明

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